1. 程式人生 > 實用技巧 >SQL注入與防範

SQL注入與防範

SQL注入即是指web應用程式對使用者輸入資料的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的SQL語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊

比如:

"select * from user where num= '"+ stunum + "'and password ='" + password +"';"

一般來說需要使用者名稱、密碼同時正確時,才可以獲取資料。但是當用戶名輸入為 “ 使用者名稱';--”時,sql語句就變成了

select * from user where num= '使用者名稱';-- and password='密碼';

此時--後面的密碼當作了sql註釋語句,現在可以不使用密碼進行登入。

使用Java中PreparedStatement能夠有效防止SQL注入

其他嚴格注意事件:

1.嚴格資料庫管理許可權

2.封裝資料庫錯誤,任何時間不能將資料庫錯誤暴露給使用者

3.機密資訊禁止明文儲存,mysql使用AES_ENCRYPT/AES_DECRYPT 加密解密。