防範sql注入

2021-04-19 04:28:00 字數 2217 閱讀 2515

真沒語言了,公司的**都有這個漏洞,明天趕緊把改了!!!

sql注入式攻擊是利用是指利用設計上的漏洞,在目標伺服器上執行sql命令以及進行其他方式的攻擊

動態生成sql命令時沒有對使用者輸入的資料進行驗證是sql注入攻擊得逞的主要原因。

比如:如果你的查詢語句是select * from admin where username='"&user&"' and password='"&pwd&"'"

那麼,如果我的使用者名稱是:1' or '1'='1

那麼,你的查詢語句將會變成:

select * from admin where username='1 or '1'='1' and password='"&pwd&"'"

這樣你的查詢語句就通過了,從而就可以進入你的管理介面。

所以防範的時候需要對使用者的輸入進行檢查。特別式一些特殊字元,比如單引號,雙引號,分號,逗號,冒號,連線號等進行轉換或者過濾。

需要過濾的特殊字元及字串有:

net user

xp_cmdshell

/add

exec master.dbo.xp_cmdshell

net localgroup administrators

select

count

ascchar

mid':"

insert

delete from

drop table

update

truncate

from

%[code start]  

alert("位址中含有非法字元~");

location.href="error.asp";

}//-->

[code end]

asp版的防範sql注入式攻擊**~:

response.write "alert('非法位址!!');"

response.write "location.href='error.asp';"

response.write ""

end if

%>

[code end]

sql 注入防範

關於身份驗證 sql select from user where name name and pwd pwd 假設只知道使用者名稱不知道密碼 1 我們在使用者名稱位置輸入 admin or 1 1 注 內容只有 內的。看看sql會變成什麼 sql select from user where na...

如何防範SQL注入 SQL注入測試

從測試來進行測試sql注入。首先,看看sql注入攻擊能分為以下三種型別 inband 資料經由sql 注入的通道取出,這是最直接的一種攻擊,通過sql注入獲取的資訊直接反映到應用程式的web頁面上 out of band 資料通過不同於sql 注入的方法獲得 譬如通過郵件等 推理 這種攻擊時說並沒有...

如何防範SQL注入 SQL注入測試

從測試來進行測試sql注入。首先,看看sql注入攻擊能分為以下三種型別 inband 資料經由sql 注入的通道取出,這是最直接的一種攻擊,通過sql注入獲取的資訊直接反映到應用程式的web頁面上 out of band 資料通過不同於sql 注入的方法獲得 譬如通過郵件等 推理 這種攻擊時說並沒有...