專業(yè)的廣州網(wǎng)站建設(shè)、廣州網(wǎng)站制作公司為您服務(wù),電話:020-85548809,29883069 手機訪問
微信關(guān)注
關(guān)注奇億廣州網(wǎng)站建設(shè)微信
網(wǎng)站導(dǎo)航
新聞中心
首頁>新聞中心>網(wǎng)頁設(shè)計

ASP動態(tài)參數(shù)傳遞怎么進行安全過濾?

添加時間:2012/8/28 18:08:48    編輯:奇億網(wǎng)站建設(shè)公司

ASP網(wǎng)站的動態(tài)參數(shù)傳遞一直是個不小的安全問題,如不進行安全過濾經(jīng)常會被黑客利用,一般的注入便是由于網(wǎng)站設(shè)計時沒有注意好傳遞過來的參數(shù)進行過濾,比如http://www.yjn-cn.com/news.asp?id=5直接用request("id")來獲取ID=5,黑客則可輕易利用此入侵。

下面教你兩種方法簡單防御:
方法一:
<%'過濾安全字符
Function SafeRequest(ParaName,ParaType)
'--- 傳入?yún)?shù) ---
'ParaName:參數(shù)名稱-字符型
'ParaType:參數(shù)類型-數(shù)字型(1表示以上參數(shù)是數(shù)字,0表示以上參數(shù)為字符)

Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "參數(shù)" & ParaName & "必須為數(shù)字型!<br /><br />"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
 ParaValue = Replace(ParaValue, "select", "sel&#101;ct")
 ParaValue = Replace(ParaValue, "join", "jo&#105;n")
 ParaValue = Replace(ParaValue, "union", "un&#105;on")
 ParaValue = Replace(ParaValue, "where", "wh&#101;re")
 ParaValue = Replace(ParaValue, "insert", "ins&#101;rt")
 ParaValue = Replace(ParaValue, "delete", "del&#101;te")
 ParaValue = Replace(ParaValue, "update", "up&#100;ate")
 ParaValue = Replace(ParaValue, "like", "lik&#101;")
 ParaValue = Replace(ParaValue, "drop", "dro&#112;")
 ParaValue = Replace(ParaValue, "create", "cr&#101;ate")
 ParaValue = Replace(ParaValue, "modify", "mod&#105;fy")
 ParaValue = Replace(ParaValue, "rename", "ren&#097;me")
 ParaValue = Replace(ParaValue, "alter", "alt&#101;r")
 ParaValue = Replace(ParaValue, "cast", "ca&#115;t")
 ParaValue = Replace(ParaValue, "and", "an&#100;")
 ParaValue = Replace(ParaValue, "or", "o&#114;")
End if
SafeRequest=ParaValue
End function

%>

用法:當(dāng)傳遞過來的參數(shù)ID為數(shù)字時,用safeRequest("id",1)接收;當(dāng)傳遞的ID為字符時,用safeRequest("id",0)接收,這樣便可防御一般黑客的參數(shù)注入。

方法二:
簡單過濾黑客需要用到的常用注入符號:<%id=replace(request("id"), " ' ", " ' ' ")%>