防止SQL注入式攻击的笔记
SQL注入式攻擊是指利用設(shè)計上的漏洞攻擊系統(tǒng)。如果動態(tài)生成SQL語句時沒有對用戶輸入的數(shù)據(jù)
進行過濾,便會使SQL注入式攻擊得逞。
例如用下面的SQL語句判斷用戶名和密碼:
txtsql="select * from user_info where userid='"&txtuserid &"' and_
password='" & txtpassword.text & "'"
則通過SQL注入式攻擊,在“密碼”文本框中輸入1'or '1'='1,非法用戶便可在
沒有密碼的情況下輕松登錄系統(tǒng),因為SQL語句已經(jīng)變?yōu)?#xff1a;
txtsql="select * from user_info where userid='"&txtuserid &"' and_
password='" &_1'or '1'='1 & "'"
要防范SQL注入式攻擊,應(yīng)該注意一下幾點;
1,檢查輸入的SQL語句的內(nèi)容,如果包含敏感字符,則刪除敏感字符,敏感字符
包含【',>,<=,!,_,+,*,/,(),|和空格】
2,不要在用戶輸入過程中構(gòu)造where子句,應(yīng)該利用參數(shù)來使用存儲過程。
下面舉例來防范SQL注入式攻擊:
Function inputString(mystr) as String
mystr=Trim(mystr)
mystr=Replace(mystr,"'","'")
mystr=Replace(mystr,";--","")
mystr=Replace(mystr,"=","")
mystr=Replace(mystr,"or","")
mystr=Replace(mystr,"and","")
End Function
txtsql="select * from user_info where userid='" & txtuserid & "' and_
password='" & inputString(txtpassword.text) & "'"
歡迎關(guān)注我的公眾號(同步更新文章):DoNet技術(shù)分享平臺
閱讀原文
總結(jié)
以上是生活随笔為你收集整理的防止SQL注入式攻击的笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智学网登录不了java_智学网登录不上怎
- 下一篇: 数据库学习建议之提高数据库速度的十条建议