请高手帮我修改ASP防注入和注册过滤字符的代码。。。。

淡淡的季节12345 2014-10-30 02:41:53
我是一个新手,在学习ASP。。。。 如题

是这样的 在登陆界面 出现这样的情况 出现界面输入:
'.).or.('.a.'='.a
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6:"or 1=1--
7:'or.'a.'='a
8:"or"="a'='a
9:'or''='
10:'or'='or'
这些字符可以直接登陆,如何修改代码屏蔽掉?还有就是 如何 屏蔽注册时使用的如“干”“日”这类词语?????

请教各位。。。 新手在此谢过。。。。

下面是代码 reg.asp代码

<!--#include file="conn.asp"-->
<body style="background:#f1f1f1;">
<%
If Request("reg_nick") <> "" And Request("reg_nickpsw") <> "" then
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.CursorLocation=3
sql="Select * from chat where c_name='" & Request("reg_nick") & "'"
rs.open sql,conn
If Not rs.EOF OR Not rs.BOF Then
%>
<script language="javascript">
alert("名称已存在,请重新输入!");
//location.href="index.asp"
</script>

<%
Else
rs.close
sql="Insert Into chat(c_name,c_psw) Values('" & Request("reg_nick") & "','" & Request("reg_nickpsw") & "')"
conn.ExeCute(sql)
%>
<script language="javascript">
alert("注册成功!您现在可以登录了。");
</script>
<%
End If
Else
%>
<script language="javascript">
alert("名称或密码不能为空!");
</script>
<%
End If
%>


我的数据库图片



请高手们教我如何修改代码、。、、、。。。。 很感激!!!
...全文
368 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
再次重申,防注入最好的办法是使用参数化查询,没有之一,彻底排除注入风险,而不是什么99%或者99.9%。 过滤、替换什么的,就别再用了,用Adodb.Command吧。
zznice 2014-10-31
  • 打赏
  • 举报
回复
'****************************************************防注入代码 function Replace_Text(fString) if isnull(fString) then Replace_Text= " " exit function else fString=trim(fString) fString=replace(fString, "'", "") fString=replace(fString, "; ", "; ") fString=replace(fString, "-", "") fString=replace(fString, "=", "") fString=replace(fString, "and", " ") fString=replace(fString, "or", " ") fString=replace(fString, "select ", " ") fString=replace(fString, "insert ", " ") fString=replace(fString, "exec ", " ") fString=replace(fString, "delete ", " ") fString=replace(fString, "update ", " ") fString=replace(fString, "count ", " ") fString=replace(fString, "mid ", " ") fString=replace(fString, "truncate ", " ") fString=replace(fString, "% ", " ") fString=replace(fString, "master ", " ") fString=replace(fString, "char ", " ") fString=replace(fString, "declare ", " ") fString=replace(fString, "* ", " ") fString=replace(fString, "from ", " ") fString=server.htmlencode(fString) Replace_Text=fString end if end function '**************************************************** 用这个函数对接收的变量都替换一次可以搞定99%的注入代码
  • 打赏
  • 举报
回复
上面的过滤也可能把正常的就过滤掉了,对于用户名部分,我建议还是使用正则来限制输入的内容
三楼の郎 2014-10-30
  • 打赏
  • 举报
回复
sql="Select * from chat where c_name='" & Request("reg_nick") & "'" 改为 sql="Select * from chat where c_name='" & Replace(Request("reg_nick"),"'","''") & "'" sql="Insert Into chat(c_name,c_psw) Values('" & Request("reg_nick") & "','" & Request("reg_nickpsw") & "')" 改为 sql="Insert Into chat(c_name,c_psw) Values('" & Replace(Request("reg_nick"),"'","''") & "','" & replace(Request("reg_nickpsw"),"'","''") & "')" 其它的类似,注入的问题至少解决一半了
  • 打赏
  • 举报
回复
我是新手,在学习中,不是很懂,请告诉我如何改呢?
  • 打赏
  • 举报
回复
引用 楼主 dandandejijie 的回复:
我是一个新手,在学习ASP。。。。 如题 是这样的 在登陆界面 出现这样的情况 出现界面输入: '.).or.('.a.'='.a 3:or 1=1-- 4:'or 1=1-- 5:a'or' 1=1-- 6:"or 1=1-- 7:'or.'a.'='a 8:"or"="a'='a 9:'or''=' 10:'or'='or' 这些字符可以直接登陆,如何修改代码屏蔽掉?还有就是 如何 屏蔽注册时使用的如“干”“日”这类词语????? 请教各位。。。 新手在此谢过。。。。 下面是代码 reg.asp代码 <!--#include file="conn.asp"--> <body style="background:#f1f1f1;"> <% If Request("reg_nick") <> "" And Request("reg_nickpsw") <> "" then Set rs=Server.CreateObject("ADODB.RecordSet") rs.CursorLocation=3 sql="Select * from chat where c_name='" & Request("reg_nick") & "'" rs.open sql,conn If Not rs.EOF OR Not rs.BOF Then %> <script language="javascript"> alert("名称已存在,请重新输入!"); //location.href="index.asp" </script> <% Else rs.close sql="Insert Into chat(c_name,c_psw) Values('" & Request("reg_nick") & "','" & Request("reg_nickpsw") & "')" conn.ExeCute(sql) %> <script language="javascript"> alert("注册成功!您现在可以登录了。"); </script> <% End If Else %> <script language="javascript"> alert("名称或密码不能为空!"); </script> <% End If %> 我的数据库图片 请高手们教我如何修改代码、。、、、。。。。 很感激!!!
最基本的过滤跟判断你都没有 建设你的用户名只是字母跟数字组合成的 那么你限制输入的东西只能是字母跟数字就OK了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧