當前位置:首頁 > 建站常識 > 列表

ASP動态參數傳遞怎麽進行安全過濾?

點擊:時(shí)間:2017/3/20關鍵詞:asp參數 上海網頁設計公司
ASP網站的(de)動态參數傳遞一直是個(gè)不小的(de)安全問題,如不進行安全過濾經常會被黑(hēi)客利用(yòng),一般的(de)注入便是由于網站設計時(shí)沒有注意好傳遞過來(lái)的(de)參數進行過濾,比如http://www.52banmian.com/news.asp?id=5直接用(yòng)request("id")來(lái)

ASP動态參數傳遞怎麽進行安全過濾?

ASP網站的(de)動态參數傳遞一直是個(gè)不小的(de)安全問題,如不進行安全過濾經常會被黑(hēi)客利用(yòng),一般的(de)注入便是由于網站設計時(shí)沒有注意好傳遞過來(lái)的(de)參數進行過濾,比如http://www.52banmian.com/news.asp?id=5直接用(yòng)request("id")來(lái)獲取ID=5,黑(hēi)客則可(kě)輕易利用(yòng)此入侵。

方法一:

<%'過濾安全字符Function SafeRequest(ParaName,ParaType) '--- 傳入參數 --- 'ParaName:參數名稱-字符型 'ParaType:參數類型-數字型(1表示以上參數是數字,0表示以上參數爲字符)Dim ParaValue ParaValue=Request(ParaName) If ParaType=1 then If not isNumeric(ParaValue) then Response.write "參數" & ParaName & "必須爲數字型!<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%>

用(yòng)法:當傳遞過來(lái)的(de)參數ID爲數字時(shí),用(yòng)safeRequest("id",1)接收;當傳遞的(de)ID爲字符時(shí),用(yòng)safeRequest("id",0)接收,這(zhè)樣便可(kě)防禦一般黑(hēi)客的(de)參數注入。

方法二:

簡單過濾黑(hēi)客需要用(yòng)到的(de)常用(yòng)注入符号:<%id=replace(request("id"), " ' ", " ' ' ")%>
預約建站
免費提供網站優化(huà)
領取關鍵詞