使用了html5 required,后台还需要做 不为空的验证吗

因为以前是用js做验证,但是别人禁掉js那么不为空的验证就没效了,所以后台也要加不为空的验证

但现在大部分都使用了html5 required了

那么后台还需要做不为空的验证吗?

阅读 11.5k
21 个回答

任何时候后台的验证都是不能省略的!!
除了楼上@JellyBool所说的情况,更重要的是请求并非一定是从浏览器发起的,也可能是由其他人手动构造的(可能出于不良的目的),如果某些重要字段在服务端不做验证,就有可能会成为被人利用的漏洞。
所以千万不要完全依赖于客户端验证,应该仅仅把客户端验证作为一种辅助手段。

永远不要相信前端的数据。
永远不要相信前端的数据。
永远不要相信前端的数据。

个人觉得还是需要的,一个最简单的场景是:如果用户用的是低版本浏览器的话,比如IE8,那么你能保证HTML 5这个required特性可以生效?

在大门装了金属探测仪就可以防歹徒么

歹徒还可以翻窗进来

所以,请在后端加验证

一楼回答很正确,后端是最后的保障

前后端必须都验证

dont believe anything

一楼说得很对,前端和后台都必须要有验证,因为ie8以下的浏览器是不支持html5的。而且前端的数据有时候是不可靠的,前端验证只是一种辅助手段,可以帮助缓解后台压力,提供更好的用户体验而已。任何时候都不要只靠前端来对数据进行处理。

你是用node做后端的话,就基本没有增加工作量,验证的库啊语句啊都是前后端通用的,直接从前端copy到后端,改一点点就行了。

不要相信前端的任何数据

用户可以模拟浏览器操作,提交非法的数据,简单的可以用 curl实现~

有个东西叫Firebug.

必须要,前后否要验证。对于一个懂前端的用户,他可以恶意攻击你的网站。

后台还是需要验证的,前端的数据永远都不是可信的

如果我模拟请求呢?

所以要加的!

必然需要,再补充一个小点。
像个别手机版本的微信内置浏览器打开也是无法使用required

当然要加
你审查元素 然后去掉required 试试

前端验证仅仅只是为了体验,后端才是真正的验证

前端的验证主要是为了用户体验好,响应速度较快,但是不可靠,是可以绕过的;但是后台的验证才是真正数据合法性的验证,所以说任何前端校验都是不能替代后台校验的。

推荐问题
宣传栏