SQL注入攻擊的主要原因是在動態(tài)生成Sql命令時沒有對用戶輸入的數(shù)據(jù)進行驗證。
假如你的查詢語句為:
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&"'"
這樣你的查詢語句就通過了,從而使攻擊者進入了你的管理界面。
所以我們要想些方法杜絕用戶輸入這些特殊字符,如單引號,雙引號,分號,逗號,冒號,連接號等。
我們可以通過相關(guān)方法來過濾這些字符,需要過濾的字符主要有:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroup administrators
select
count
Asc
char
mid
'
:
"
insert
delete from
drop table
update
truncate
from
%
下面我們介紹一種使用JS技術(shù)防止SQL注入的方法,以供大家學習參考。
<script language="javascript">
<!--
var url = location.search;
var re=/^/?(.*)(select%20|insert%20|delete%20from%20|count/(|drop%20table|update%20truncate%20|asc/(|mid/(|char/(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|/"|:|net%20user|/'|%20or%20)(.*)$/gi;
var e = re.test(url);
if(e) {
alert("傳入的地址中含有非法字符!");
location.href="index.asp";
}
//-->
<script>
通過以上方法,我們可以杜絕用戶在傳遞參數(shù)時輸入非法的字符。
新聞熱點
疑難解答