国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

防范sql注入式攻擊js版本

2019-11-18 16:28:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SQL注入式攻擊是利用是指利用設(shè)計(jì)上的漏洞,在目標(biāo)服務(wù)器上運(yùn)行Sql命令以及進(jìn)行其他方式的攻擊
動(dòng)態(tài)生成Sql命令時(shí)沒(méi)有對(duì)用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證是Sql注入攻擊得逞的主要原因。
比如:
如果你的查詢語(yǔ)句是select * from admin where username=''"&user&"'' and passWord=''"&pwd&"''"
那么,如果我的用戶名是:1'' or ''1''=''1
那么,你的查詢語(yǔ)句將會(huì)變成:
select * from admin where username=''1 or ''1''=''1'' and password=''"&pwd&"''"
這樣你的查詢語(yǔ)句就通過(guò)了,從而就可以進(jìn)入你的管理界面。

所以防范的時(shí)候需要對(duì)用戶的輸入進(jìn)行檢查。特別式一些特殊字符,比如單引號(hào),雙引號(hào),分號(hào),逗號(hào),冒號(hào),連接號(hào)等進(jìn)行轉(zhuǎn)換或者過(guò)濾。

需要過(guò)濾的特殊字符及字符串有:
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
%

下面是我寫(xiě)的兩種關(guān)于解決注入式攻擊的防范代碼,供大家學(xué)習(xí)參考!
js版的防范SQL注入式攻擊代碼:

  
<script language="****">
<!--
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|/"|../../image/bbs3000/whatchutalkingabout_smile.gifnet%20user|/''|%20or%20)(.*)$/gi;
var e = re.test(url);
if(e) {
alert("地址中含有非法字符~");
location.href="error.asp";
}
//-->
<script>
[CODE END]


asp版的防范SQL注入式攻擊代碼~:
[CODE START]
<%
On Error Resume Next
Dim strTemp

If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If

strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")

strTemp = strTemp & Request.ServerVariables("URL")

If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)

strTemp = LCase(strTemp)

If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"''") or Instr(strTemp,"%20or%20") then
Response.Write "<script language=''****''>"
Response.Write "alert(''非法地址!!'');"
Response.Write "location.href=''error.asp'';"
Response.Write "<script>"
End If
%>

以下是較為簡(jiǎn)單的防范方法,這些都是大家比較熟悉的方法,我就是轉(zhuǎn)帖過(guò)來(lái)。希望能給你一點(diǎn)幫助~
主要是針對(duì)數(shù)字型的變量傳遞:
id = Request.QueryString("id")
If Not(isNumeric(id)) Then
Response.Write "非法地址~"
Response.End
End If


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵石县| 虎林市| 上蔡县| 美姑县| 裕民县| 林周县| 隆子县| 万安县| 芦山县| 泸水县| 鄯善县| 伊宁县| 天柱县| 泸西县| 武山县| 东台市| 黄山市| 马关县| 盘山县| 泾源县| 京山县| 黔西| 怀远县| 长宁县| 通化县| 武鸣县| 河北区| 克东县| 句容市| 江阴市| 林甸县| 翼城县| 湘乡市| 思南县| 黑山县| 乌拉特中旗| 三门县| 濉溪县| 兴隆县| 定结县| 古田县|