我使用的是最简单的HTML5表单,并希望使用复选框的"required"属性,以确保用户在提交表单时单击它。
我应该进行一些服务器端验证吗?以防有人使用的浏览器不支持html5?
更多信息:
我的表格是这样的:
[]我接受的条款和条件
提交
代码:
<input type="checkbox" required> I accept the terms and conditions<br />
<input type="submit" value="submit"/>
客户端表单验证是增强用户体验的好方法,它还提供了一些样式,可以帮助传达需要输入的信息。
但无论如何,您都必须验证服务器上提交的任何数据,确保数据干净安全。required
属性可能被恶意用户操纵。
永远不要相信来自客户端的任何数据(无论是HTML还是JS,它们都可以更改。客户端的验证只是为了更好的用户体验。真正的安全性在服务器端。
所有浏览器都支持实际需要的CSS伪类(没有问题,IE8除外),正如您在这里看到的
http://caniuse.com/#search=form%20validation
无论如何,您总是需要服务器端验证,因为不管怎样,客户端检查的数据都必须被认为是不安全的。
仅仅保存UI后面的逻辑是不够的。某些HTML表单验证在某些浏览器中不起作用。所以服务器端验证是必须的
客户端验证是指用户输入在发送到服务器之前由浏览器进行验证,可以使用HTML属性、JavaScript或其他脚本语言进行验证。这种验证不能保证验证没有被黑客和恶意用户搞砸,他们经常发现这种薄弱的安全协议中存在漏洞。因此,在生产级别的企业级软件和其他准备通过网络部署的应用程序中,强烈建议使用服务器端验证协议,以确保不会对数据进行错误处理。例如:springboot使用";弹簧启动启动器验证";pom.xml文件中的依赖项,以便将其服务器端验证方法引入程序中。