手动阀

Good Luck To You!

如何在ASP中实现防止SQL注入攻击的两个有效函数?

在ASP中,可以使用两个函数来防止SQL注入式攻击:,,1. Server.HTMLEncode: 该函数用于将字符串中的HTML特殊字符转换为其对应的HTML实体编码,从而避免执行恶意代码。,,2. Replace: 该函数可以替换掉字符串中的特定字符或子字符串,例如将单引号(')替换为两个单引号(''),以阻止SQL注入。,,这两个函数可以帮助开发者提高应用程序的安全性,减少受到SQL注入攻击的风险。

在ASP开发中,防止SQL注入式攻击是保障网站安全的重要措施,以下是两个用于防止SQL注入的Function:

如何在ASP中实现防止SQL注入攻击的两个有效函数?

一、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”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.