我在HTML5中创建了一个小型联系表单,使用“js-webshims”进行客户端验证。此表单通过服务器上的php处理。但是,我没有服务器端验证。仅通过HTML5进行客户端验证。
我的问题:我是否只能使用HTML5和'js-webshims'polyfill进行客户端验证,还是需要进行服务器端验证?
谢谢。
答案 0 :(得分:3)
您始终需要进行服务器端验证。
每个人都可以在不使用表单的情况下向服务器发送/获取请求。
答案 1 :(得分:2)
理想情况下,您需要双方进行验证。客户端,以便用户知道他们提交的内容是否有效,以及服务器端,以便您可以在将其放置到需要的位置之前对其进行处理。
使用此作为经验法则...如果是客户端,客户端可以在提交之前更改它。
答案 2 :(得分:1)
永远不要相信来自任何来源的输入。始终验证服务器端。
答案 3 :(得分:1)
第一条规则: 永远不要相信任何数据!
第二: 客户端上的任何内容都可以被欺骗。
第三: 不要相信任何使用 absolutley强制,始终或永远等表达式的规则。 (是的,这是平等的,同时也是对第一条规则的对抗)
(请永远不要盲目遵循生活中的规则!!!)
这取决于您的需求和想要实现的目标。客户端验证最大限度地减少了真实用户的错误输入,并帮助网站所有者最大限度地减少数据库中的错误数据。但它并没有阻止,一个程序员提交格式错误和/或滥用数据。要防止SQL注入或类似的攻击,您需要某种服务器端验证。但是,服务器端语法验证也不会阻止用户或程序使用正确的语法提交错误的数据。
因此,如果语法验证是安全问题,则需要进行服务器端验证。
注意:我真的不喜欢我的回答,并且喜欢Justin E的那个。但所有其他答案都有点偏颇。希望别人能打到钉子。 :-D
答案 4 :(得分:0)
服务器端验证绝对是强制性的。客户端更多的是用户的便利功能/改进的用户体验。
答案 5 :(得分:0)
始终使用服务器端验证。前端验证很容易禁用,有人可以在没有您的表单的情况下发送数据,以便在您的应用程序中获取错误数据(ajax,curl ....)。
前端验证仅适用于可用性。