|
主题:浅谈科讯系统的SQL防注入对英文站的影响,也是个小BUG吧 [收藏主题] |
科讯的SQL防注入的代码是:
Function DelSql(Str) Dim SplitSqlStr,SplitSqlArr,I SplitSqlStr="dbcc|alter|drop|*|and |exec|or |insert|select|delete|update|count |master|truncate|declare|char|mid|chr|set |where|xp_cmdshell" SplitSqlArr = Split(SplitSqlStr,"|") For I=LBound(SplitSqlArr) To Ubound(SplitSqlArr) If Instr(LCase(Str),SplitSqlArr(I))>0 Then 'Die "<script>alert('系统警告!\n\n1、您提交的数据有恶意字符" & SplitSqlArr(I) &";\n2、您的数据已经被记录;\n3、您的IP:"&GetIP&";\n4、操作日期:"&Now&";!');window.close();</script>" Die "<script>alert('系统警告!\n\n1、您提交的数据有恶意字符;\n2、您的数据已经被记录;\n3、您的IP:"&GetIP&";\n4、操作日期:"&Now&";!');window.close();</script>" End if Next DelSql = Str End Function 这样的话中文站不用在担心SQL注入了,但是做英文站的时候客户提交的信息中很多会遇到正常使用如and、or、insert、select、delete、update、count 、master、set、where等单词的话就行不通了,我现在也没有想到好的方法 我的做法是把那段过滤的词暂时改为:SplitSqlStr="dbcc|*|KS_ |ks_|exec|chr|xp_cmdshell" 不知道大家有没有更好的方法过来共同讨论下了! |
|
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
<上一主题 | 下一主题 > |