Rem ## 长整数转换 Function toNum(s, default) If IsNumeric(s) and s <> "" then toNum = CLng(s) Else toNum = default End If End Function Rem ## SQL 语句转换 Function toSql(str) If IsNull(str) Then str = "" toSql = replace(str, "''", "''''") End Function 示例: Dim sql Dim strWhere, strName, intAge strName = toSql(request("user")) intAge = toNum(request("age"), 20) sql = "SELECT * FR...
本文章免费提供一款asp防sql注入源程序看,方法比较简单就是接收query的值进行过滤哦。本文章免费提供一款asp防sql注入源程序看,方法比较简单就是接收query的值进行过滤哦。squery=lcase(Request.ServerVariables("QUERY_STRING"))
sURL=lcase(Request.ServerVariables("HTTP_HOST"))
SQL_injdata =":|;|>|
SQL_inj = split(SQL_Injdata,"|")
For SQL_Data=0 To Ubound(SQL_inj)
if instr(squery&sURL,Sql_Inj(Sql_DATA))>0 T...
下面给出4个函数,足够你抵挡一切SQL注入漏洞!读懂代码,你就能融会贯通。 注意要对所有的request对象进行过滤:包括 request.cookie, request.ServerVariables 等等容易被忽视的对象: 代码如下:function killn(byval s1) 过滤数值型参数 if not isnumeric(s1) then killn=0 else if s1<0 or s1>2147483647 then killn=0 else killn=clng(s1) end if end if end function function killc(byval s1) 过滤货币型参数 if not isnum...
一般写ASP PHP代码的朋友都估计是采用直接操作SQL的吧~ 看以下的代码 <% dim conn,rs set conn=CreateObject("Adodb.Connection") conn.open .... set rs=conn.execute("select * from news"); ... 遍历 rs.... %> 这样实现速度快是肯定的了,但是在结构逻辑上面1条半条语句当然不觉得怎样!语句多了问题也就来了! 参数没过滤啊,SQL存在注入啊等等~OK 现在我们来换个设计模型! 采用 3层结构 + ORM ORM : OBJECT RELATION MAPPING ...
<% '****************************** '函数:CheckStr(byVal ChkStr) '参数:ChkStr,待验证的字符 '作者:阿里西西 '日期:2007/7/15 '描述:对SQL注入危险字符进行重编码处理 '示例:CheckStr("and 1=1 or select * from") '****************************** Function CheckStr(byVal ChkStr) Dim Str:Str=ChkStr Str=Trim(Str) If IsNull(Str) Then CheckStr = "" Exit Function End If Dim re Set re=new RegExp re....
'屏蔽通过地址栏攻击 url=Request.ServerVariables("QUERY_STRING") if instr(url,";")>=1 then url=Replace(url,";",";") : Response.Redirect("?" & url) end if '屏蔽通过表单攻击 for each item in request.form stritem=lcase(server.HTMLEncode(Request.form(item))) if instr(stritem,"select ")>=1 or instr(stritem,"insert ")>=1 or instr(stritem,"update ")>=1 or instr(stritem,"delete ")>=1 or...
把下面代码复制到每个文件头部就可以防止SQL注入了,写程序安全最重要 :) <% Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx '---定义部份 头------ Fy_Cl = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向 Fy_Zx = "Error.Asp" '出错时转向的页面 '---定义部份 尾------ On Error Resume Next Fy_Url=Request.ServerVariables("QUERY_STRING") Fy_a=split(Fy_Url,"&") redim Fy_Cs(ubound(Fy_a)) On Error Resume N...
方法1: Replace过滤字符
解决方法:查找login.asp下的<from找到下边的类似username=request.Form(”name”)
pass=request.Form(”pass”)修改为:username=Replace(request.Form(”name”), “’”, “’’”)
pass=Replace(request.Form(”pass”), “’”, “’’”)语法是屏蔽’和’’字符来达到效果.
方法2:在conn.asp 内引入safe.asp文件注意:前提是登陆页面有引入conn.asp文件把以下代码保存为safe.asp
程序代码
<%
Dim Que...
<% Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx ‘---定义部份 头------ Fy_Cl = 1 ‘处理方式:1=提示信息,2=转向页面,3=先提示再转向 Fy_Zx = "index.Asp" ‘出错时转向的页面 ‘---定义部份 尾------ On Error Resume Next Fy_Url=Request.ServerVariables("QUERY_STRING") Fy_a=split(Fy_Url,"&") redim Fy_Cs(ubound(Fy_a)) On Error Resume Next for Fy_x=0 to ubound(Fy_a) Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(...