asp

位置:IT落伍者 >> asp >> 浏览文章

ASP防注入之解决方案--加强版


发布日期:2020年12月16日
 
ASP防注入之解决方案--加强版

ASP防注入之解决方案

特殊页面处理

因为有些页通过流式传递(比如含有文件上传的表单)

如果单一使用穷举Form对象的操作就会出错

所以要把这些页面过滤出来同时在页面中使用sql(检测的字串)才行

垃圾猪

将本页用include方法放在头部以让所有页都可以调用比如include在connasp里

如果有流式上传的页面请把该页加到表page中以防form沖突

Dim N_noN_noarrayreq_Qsreq_FN_iN_dbstrConnN_rsN_userIPN_thispage

N_userip = RequestServerVariables(REMOTE_ADDR)

N_thispage = LCase(RequestServerVariables(URL))

N_no =|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare 可以自己修改怀疑是注入操作的字串

N_noarray = split(LCase(N_no)|)

Call DBopen()

Call N_check_Qs()

Call N_checkPage()

Call DBCLose()

检测当前页是否是特殊页是就调用 N_check_form()

sub N_checkPage()

set N_rs = serverCreateObject(ADODBRecordSet)

N_rsopen select * from page where spcpage like %

if(N_rseof AND N_rsBof) then

Call N_check_form()

end if

N_rsClose()

set N_rs = nothing

end sub

检测给定字串

sub N_sql(agsql)

这里是不记录数据库如果要改请自己修改

N_check CUSreq_QsOTHER

end sub

检测RequestForm

sub N_check_form()

If RequestForm Then

For Each req_F In RequestForm

N_check req_FRequestForm(req_F)POST

Next

end if

end sub

检测RequestQueryString

sub N_check_Qs()

If RequestQueryString Then

For Each req_Qs In RequestQueryString

N_check req_QsRequestQueryString(req_Qs)GET

Next

end if

end sub

检测

sub N_check(agagsqlsqltype)

For N_i= To Ubound(N_noarray)

If Instr(LCase(agsql)N_noarray(N_i)) Then

call N_regsql(agagsqlsqltype)

ResponseWrite MO

end if

Next

end sub

记录并停止输出

ag 名称

agsql 内容

sqltype 类型

sub N_regsql(agagsqlsqltype)

if(sqltypeOTHER) then

ConnExecute(insert into SqlIn(Sqlin_IPSqlIn_WebSqlIn_FSSqlIn_CSSqlIn_SJ) values(

end if

ResponseWrite

ResponseWrite 非法操作!系统做了如下记录↓

ResponseWrite 操作IP

ResponseWrite 操作时间

ResponseWrite 操作页面

ResponseWrite 提交方式

ResponseWrite 提交参数

ResponseWrite 提交数据

Responseend

end sub

Sub DBopen()

N_dbstr=DBQ=+servermappath(Sqlmdb)+;DefaultDir=;DRIVER={Microsoft Access Driver (*mdb)};

Set Conn=ServerCreateObject(ADODBCONNECTION)

Connopen N_dbstr

end SUB

Sub DBCLose()

Connclose

Set Conn = Nothing

End sub

上一篇:asp显示文件夹属性的函数

下一篇:最大限度优化你的Asp程序的性能