日期:2014-05-16  浏览次数:20826 次

关于用户不友好的访问,怎么处理啊?
比如我这里一个注册页面a.asp:有帐号uname,密码upass,密保问题umibao,密保答案udaan等,
通常我们会在这表单里面加入JS验证,然后提交到b.asp处理入库,现在如果我直接输入b.asp,如果不在b.asp页面不对uname upass umibao udaan取的值进行验证 就会空值入库
我不想在b.asp再验证一下这些取来的值,因为我在a.asp页面已经加入了JS验证,b.asp再加入验证做的好累。。
现在就是有没办法 让用户在输入b.asp的时候 直接报错或者什么的???
验证

------解决方案--------------------
反过来可以,不做js验证,只做服务器验证,要记住,用户输入的数据是不可信的。
------解决方案--------------------
加一句代码。
效果是:如果传过来的值为空,b.asp那么停止响应,立即转到a.asp。

<%
if request.form("uname")="" or request.form("upass")="" or request.form("umibao")="" or request.form("udaan")="" then
response.redirect("a.asp")
response.end()
end if
%>


------解决方案--------------------
引用:
比如用户直接访问b.asp 能不能通过判断用户来源地址 如果不是从a.asp提交过来的 直接报错?
这步程序怎么写呢?



<%
if instr(request.ServerVariables("HTTP_REFERER"),"a.asp")=0 then
response.write("<script>alert('非法操作,请重新登录!!'); window.location.href='a.asp'</script>")
response.End()
end if
%>

------解决方案--------------------
不能偷懒的,客户端验证可以绕过去的。
------解决方案--------------------
客户端js验证不可信。。

除非内部系统,不对外发布给别人使用,js验证就行,要不服务器端一定要再验证过,这个偷懒不得
------解决方案--------------------
客户端验证不行~本身就是写验证的要求:必须在服务器端验证。否则不安全。

可以改改写法,加快一点速度。

a.asp页面客户端用于input

b.asp页面服务器端用于验证。先验证是否符合基本规则要求,再连接数据库进行用户名、密码的对应验证。如果连基本的规则要求都不符合,直接跳转不需要打开数据库了。
if name="" then
跳转至a.sp并显示错误信息
end if
'第一步,上面是先验证是否符合基本规则要求
再打开conn.asp文件
'第二步,再打开数据库
(下面的验证不写了)