首页新闻找找看学习计划

问大家一个关于B/S输入验证的问题。。想看看大家都是怎么解决的

0
悬赏园豆:5 [已解决问题] 解决于 2014-07-31 16:14

大家在前台用js验证过输入值之后,还要在后台再验证一遍吗?

 

有些比较重要的数据,比如充值金额,银行账号 之类的重要信息,如果用户也是个开发者,前端的js验证他可以在浏览器里调试js,将前端验证这关给混过。。有没有这样的可能???

 

如果是这样的话,那么是不是要在后台写一套完全相同的验证逻辑?

 

平时大家都是怎么做的,发上来参考一下。。谢谢了!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:405
提问于:2014-07-28 16:00
< >
分享
最佳答案
0

看需求,一般内网用户,不涉及金额的。不需要处理后台验证(会记录操作人,谁乱整是能发现的)

不过面向大众的,高安全性的,就需要后台验证了。

收获园豆:5
幻天芒 | 高人七级 |园豆:36522 | 2014-07-28 16:32
其他回答(10)
0

这要看你的具体需求,你可以举一个例子,然后我来分析哪些验证在 JS 端,哪些验证在服务端。

Launcher | 园豆:45040 (高人七级) | 2014-07-28 16:08

比如用下拉列表选择充值金额后,在前台用JS  var x=下拉列表的选择值,然后将x提交到后台。。但x是中途可以通过用浏览器调试改变x的值哦。。。这时如何保证所选择的值给x后,不会经过改变?

支持(0) 反对(0) hexllo | 园豆:405 (菜鸟二级) | 2014-07-28 16:18

@hexllo: 不能保证。你这个例子太简单,而且不在你提的问题的讨论范围内,你这属于请求劫持和篡改问题。在你的这个例子中,服务器只需要确认提交的请求是以正确的用户标识发送来的,并且提交的金额是在需求界定的范围内就足够了。

支持(0) 反对(0) Launcher | 园豆:45040 (高人七级) | 2014-07-28 16:25

@hexllo: 通常能干这事的就是你的授权用户了,你没有办法阻挡他干这种事。

服务器验证通常只是验证数据是否符合规范,而无法验证,数据是否通过正常的途径过来的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:29841 (高人七级) | 2014-07-28 16:28
0

我一般都验证2次,前端验证给提示,后台提交时再验证一次```

吴瑞祥 | 园豆:28729 (高人七级) | 2014-07-28 16:11
1

后台验证是为了安全性。

前台验证是为了用户友好。

爱编程的大叔 | 园豆:29841 (高人七级) | 2014-07-28 16:17
0

我觉得爱编程的大叔说的对.B/S的毕竟可以绕过验证的方法太多

飞来飞去 | 园豆:2057 (老鸟四级) | 2014-07-28 16:42
0

两头验证吧,保险

刘宏玺 | 园豆:14004 (专家六级) | 2014-07-28 17:31
0

前端可以绕开验证,后台验证更重要,核心业务参数不验证很容易造成隐藏业务错误。

JeffWong | 园豆:2021 (老鸟四级) | 2014-07-28 19:57
0

前段验证不应该涉及安全性呀,就像上头说的是为了用户友好,单纯验证字段位数什么的。

后台验证才要考虑安全。

Moral | 园豆:206 (菜鸟二级) | 2014-07-28 22:41
0

为了安全起见,一般是生成验证码的时候存放在session,然后提交的到后台进行验证。

faib | 园豆:167 (初学一级) | 2014-07-28 23:07
0

一要看数据,重要的数据验证二遍,前后都要验。

前验证:为了用户友好,不用每次提交后才发现数据不符合要求。

后验证:为了安全,不至于前端关了验证,或绕过验证,提交不合法数据。

二要看系统使用人群,内部员工使用可以简单化一些。

Albert Fei | 园豆:2102 (老鸟四级) | 2014-07-29 11:14
0

尽量两次吧,后台验证一般最好是加上。

forhells | 园豆:969 (小虾三级) | 2014-07-29 21:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册