sp防注入代码和防cookie注入代码

asp防注入代码和防cookie注入代码


以前只知道日站不知道安全。这几天略微了解了一些。把自己这几天常用的asp防注入代码和防cookie注入代码发到自己博客上来。仅作记录方便以后查看。

<%
Response.Buffer = True   '缓存页面
'防范get注入
If Request.QueryString <> ""   Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form <> ""   Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies <> ""   Then StopInjection(Request.Cookies)
'正则子函数
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write "<Script Language=javascript>alert('非法注入!你的行为已被记录!!');history.back(-1);</Script>"
Response.End
End If
Next
Set regEx = Nothing
End function
%>

使用方法:“把上面代码复制到conn.asp文件中放到文件最上方就可以了。(ps:如果你改名的话就放到数据库连接文件中不要符文代码前后的<%%>)”

其他方法代码:


放入conn.asp中(拒绝攻击 万能Asp防注入代码)
第一种:

squery=lcase(Request.ServerVariables("QUERY_STRING"))
sURL=lcase(Request.ServerVariables("HTTP_HOST"))

SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")

For SQL_Data=0 To Ubound(SQL_inj)
if instr(squery&sURL,Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL防注入系统"
Response.end
end if
next
 
 
 
第二种:
SQL_injdata =":|;|>|<|--|sp_|xp_|\|dir|cmd|^|(|)|+|$|'|copy|format|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系统"
Response.end
end if
next
Next
End If

If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "SQL通用防注入系统"
Response.end
end if
next
next
end if

 
on error resume next   '这行代码放到conn.asp的第一行。

'防止注入
dim qs,errc,iii
qs=request.servervariables("query_string")
'response.write(qs)
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="'"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
Response.Write("对不起,非法URL地址请求!")
response.end
end if

其他写法
把下面的代码保存在公用文件里就可以防止注入扫描了,比方说conn.asp 里,根据多年开发的经验建议将网站后台和前台分离,后台一个conn.asp 前台一个conn.asp 前台conn.asp加如下代码
<% 
Dim flashack_Post,flashack_Get,flashack_In,flashack_Inf,flashack_Xh,flashack_db,flashack_dbstr 
flashack_In "'※;※and※exec※insert※select※delete※update※count※*※%※chr※mid※master※truncate※char※declare" 
flashack_Inf split(flashack_In,"※") 
If Request.Form<>"" Then 
For Each flashack_Post In Request.Form 

For flashack_Xh=0 To Ubound(flashack_Inf) 
If Instr(LCase(Request.Form(flashack_Post)),flashack_Inf(flashack_Xh))<>0 Then 
Response.Write "<Script Language=JavaScript>alert('flashack防注入系统提示你↓\n\n请不要在参数中包含非法字符尝试注入');</Script>" 
Response.Write "非法操作!系统做了如下记录↓<br>" 
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>" 
Response.Write "操作时间:"&Now&"<br>" 
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>" 
Response.Write "提交方式:POST<br>" 
Response.Write "提交参数:"&flashack_Post&"<br>" 
Response.Write "提交数据:"&Request.Form(flashack_Post) 
Response.End 
End If 
Next 
Next 
End If 
If Request.QueryString<>"" Then 
For Each flashack_Get In Request.QueryString 
For flashack_Xh=0 To Ubound(flashack_Inf) 
If Instr(LCase(Request.QueryString(flashack_Get)),flashack_Inf(flashack_Xh))<>0 Then 
Response.Write "<Script Language=JavaScript>alert('flashack防注入系统提示你↓\n\n请不要在参数中包含非法字符尝试注入');</Script>" 
Response.Write "非法操作!flashack已经给你做了如下记录↓<br>" 
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>" 
Response.Write "操作时间:"&Now&"<br>" 
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>" 
Response.Write "提交方式:GET<br>" 
Response.Write "提交参数:"&flashack_Get&"<br>" 
Response.Write "提交数据:"&Request.QueryString(flashack_Get) 
Response.End 
End If 
Next 
Next 
End If 
%> 

===== 以下为摘录======================

网页防篡改

一,Stream开关可自由设置,ASP中的ADODB.Stream 对象用来操作二进制或文本数据的流。通常用于无组件上传和验证码等功能。关闭该组件可以提高网站安全。 Fso开关也可自由设置,FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。关闭该组件有利于提高网站安全。

二,假设网站建好后,今后一段时间都不会再用到ftp上传功能,这时可以暂时关闭FTP上传,有助于提高网站的安全,即使ftp密码泄露,黑客也不能操作空间内的文件,设置后60秒后生效。

三,另外还可设置脚本权限与写入权限,如果网站只使用了asp,可设置为只开放asp权限。这样黑客即使上传了php的木马到空间也不能运行,最少的权限=最大的安全。写入权限设置则系统支持全国领先的目录权限设置,允许关闭网站的写入权限,锁定虚拟主机。对安全有重要意义,例如可以将access数据库放在databases目录,而将wwwroot目录的写入权限关闭,令asp木马根本无法上传,这样比关闭FSO更安全。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值