天天看點

SQL注入攻擊防範技巧

SQL注入攻擊防範技巧

一般的SQL注入攻擊都是通過建構一條複雜的sql語句,

通過網頁漏洞來執行sql語句,達到攻擊資料庫的目的。

如通過文章ID來查詢某一篇文章的網頁,

通常采用的sql語句為:

sql="select top 1 * from articles where articId="&request("id")

那麼可以簡單地建構一條攻擊語句:

傳入id變量的值為:1; select getDate(); --

進而建構了一條新的sql語句:

select top 1 * from articles where articId=1;

select getDate(); --

雖然這條語句并不能對資料庫産生任何負面影響,

但是其它的攻擊語句也是這樣通過添加語句分隔符;和注釋符号--來組成的。

我們的防範技巧,對所有可以送出傳入的變量進行處理:

1、int類型的資料,如上例中的id,則使用以下方法處理:

   <%

 on error resume next

 id = CInt(request("id"))

   %>

2、字元串類型的資料,則進行常見的标點符号過濾處理:

   <%

 str = request("str")

 str = replace(str, "´", "") ´将單引号字元過濾掉

 str = replace(str, ";", "") ´将分号過濾掉

 ´...

   %>

   其他字元不一一枚舉,你可以寫一個字元過濾的函數,過濾一些在你的網站當中

   并不常用的有危險性的符号;也可以采用正規表達式來進行過濾;