防止SQL注入方案

本文介绍SQL注入的工作原理及防御措施,包括对输入进行严格的类型检查和格式限制,以减少潜在的安全风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL注入的原理:利用提交的字段构造特殊的SQL语句,猜解数据库的表结构、数据库帐号、密码,进而破坏数据、控制服务器。
流行防注入方案:研究每一个具体的注入技术,浏览器端提交数据后查询数据库前,检测提交数据是否含有具体注入技术包含的符号、单词。
                   缺点:由于SQL注入是设计缺陷,要避免注入,必须熟悉所有的特殊的SQL语句。这要化大量的时间去精通SQL不常用的语句。
                         另外,检测数据的时候,需要过滤的符号、单词、语句结构很多,计算量很大。
具体措施:
   1 对输入的数字,使用i=Cstr(Cint(Request("i")))双层转换,如果转换失败,说明输入的不是数字。
   2 对输入的中文字符串、中文段落,使用如下函数。把此函数放到include文件夹下的function.asp文件内,包含到需要此函数的asp页面。
<script language="vbscript" runat="server">
   Function asc2chinese(str1)
     Dim str2,c,L,i
str2=""
L=Len(str1)
For i =1 To L
    c=Mid(str1,i,1)
       If Asc(c)>0 And Asc(c)<127 Then
         str2=str2+Chr(Asc(c)-23680)     '字符编码大于0,小于127为ANSI编码,特定ANSI编码减去23680等于对应的中文宽体编码的值。真实情况是中文宽体使用的是多字节存储,被IIS认为是一个很大的负数。
       Else
         str2=str2+c
       End if
Next
     asc2chinese=str2
   End Function
</script>
   3 对输入的英文字符串,比如帐号、密码,添加帐号、密码时,限定长度、禁止空格、符号。查询帐号、密码时检查长度、空格、符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值