Server.HTMLEncode
: 该函数用于将字符串中的HTML特殊字符转换为其对应的HTML实体编码,从而避免执行恶意代码。,,2. Replace
: 该函数可以替换掉字符串中的特定字符或子字符串,例如将单引号(')替换为两个单引号(''),以阻止SQL注入。,,这两个函数可以帮助开发者提高应用程序的安全性,减少受到SQL注入攻击的风险。在ASP开发中,防止SQL注入式攻击是保障网站安全的重要措施,以下是两个用于防止SQL注入的Function:
一、ForSqlForm
1、功能描述:ForSqlForm
函数主要用于过滤表单提交的数据,检查其中是否包含非法字符,如果发现非法字符,将阻止表单提交并提示用户。
2、代码示例
function ForSqlForm() dim fqys,errc,i,items dim nothis(18) nothis(0)="net user" nothis(1)="xp_cmdshell" nothis(2)="/add" nothis(3)="exec%20master.dbo.xp_cmdshell" nothis(4)="net localgroup administrators" nothis(5)="select" nothis(6)="count" nothis(7)="asc" nothis(8)="char" nothis(9)="mid" nothis(10)="'" nothis(11)=":" nothis(12)="""" nothis(13)="insert" nothis(14)="delete" nothis(15)="drop" nothis(16)="truncate" nothis(17)="from" nothis(18)="%" 'nothis(19)="@" errc=false for i= 0 to ubound(nothis) for each items in request.Form if instr(request.Form(items),nothis(i))<>0 then response.write("<div>") response.write("你所填写的信息:" & server.HTMLEncode(request.Form(items)) & "<br>含非法字符:" & nothis(i)) response.write("</div>") response.write("对不起,你所填写的信息含非法字符!<a href=""#"" οnclick=""history.back()"">返回</a>") response.End() end if next end for end function
二、ForSqlInjection
1、功能描述:ForSqlInjection
函数用于过滤查询字符串中的非法字符,如果发现非法字符,将阻止查询并提示用户。
2、代码示例
function ForSqlInjection() dim fqys,errc,i dim nothis(19) fqys = request.ServerVariables("QUERY_STRING") nothis(0)="net user" nothis(1)="xp_cmdshell" nothis(2)="/add" nothis(3)="exec%20master.dbo.xp_cmdshell" nothis(4)="net localgroup administrators" nothis(5)="select" nothis(6)="count" nothis(7)="asc" nothis(8)="char" nothis(9)="mid" nothis(10)="'" nothis(11)=":" nothis(12)="""" nothis(13)="insert" nothis(14)="delete" nothis(15)="drop" nothis(16)="truncate" nothis(17)="from" nothis(18)="%" nothis(19)="@" errc=false for i= 0 to ubound(nothis) if instr(FQYs,nothis(i))<>0 then errc=true end if next if errc then response.write "查询信息含非法字符!<a href=""#"" οnclick=""history.back()"">返回</a>" response.end end if end function
相关问题与解答
问题1:什么是SQL注入式攻击?
答案:SQL注入式攻击是指攻击者通过向Web表单或页面请求的查询字符串中插入恶意SQL命令,欺骗服务器执行这些命令,从而获取未经授权的访问或进行破坏性操作,这种攻击方式利用了应用程序对用户输入的信任和直接使用,没有进行充分的验证和过滤。
问题2:如何有效防止SQL注入式攻击?
答案:有效防止SQL注入式攻击的方法包括:替换单引号,删除用户输入内容中的所有连字符,限制数据库帐户权限,使用存储过程来执行所有查询,限制表单或查询字符串输入的长度,检查用户输入的合法性,将用户登录名称、密码等数据加密保存,以及检查提取数据的查询所返回的记录数量,这些方法可以单独或组合使用,以提高系统的安全性。
以上内容就是解答有关“ASP下的两个防止SQL注入式攻击的Function”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。