java web 如何防止 用户绕过js验证,直接地址栏提交表单或自己编写html页面,提交数据到服务器?

发现一个问题,恶意用户可能不通过web程序提供的页面。而是直接通过浏览器地址栏访问系统,更有甚者自己编写html页面,提交数据到服务器,绕过前段js验证。现在的问题是,服... 发现一个问题,恶意用户可能不通过web程序提供的页面。而是直接通过浏览器地址栏访问系统,更有甚者自己编写html页面,提交数据到服务器,绕过前段js验证。
现在的问题是,服务器端如何知道当前的请求(get或post)是web程序发出去的,而不是用户自发的访问系统或攻击行为?排出session问题,因为用户登陆了系统后,session已存在,他猜到服务器访问路径,可以通过浏览器地址栏或自制表单访问。请大师们帮帮忙,感谢哈!
展开
 我来答
百度网友21647e5fc
推荐于2016-05-04 · TA获得超过709个赞
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:143万
展开全部
一个简单的方法是,在用户获取html页面的时候,后台生成一个(MD5)字串(假设为k),并且返回给前端。

提交表单的时候,顺带也把这个k一起提交。

在处理提交的地方(后台),去校验这个k,看看是不是自己生成的。

如果用户伪造http请求,那么自然是不带k的,或者k是错误的。

还可以判断http请求头,比如UserAgent之类的,用于 辅 助 判断请求的合法性。
追问
1、MD5字符串如何返回前段?用表单隐藏域吗?
这样吗?
这样的话,客户端是可以通过查看源代码看到这个md5字符串的啊……

2、UserAgent具体怎么用啊?
追答
  1. 客户端是可以看到,但是这个md5只能使用一次。

  2. UserAgent是一个http头,表示浏览器标识。不过这个可以被伪造。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式