HTML5 'Required' 表单验证属性:好主意还是坏主意

HTML5 'Required' attribute for form validation: Good idea or bad idea

我正在使用 HTML 5 个表单中最简单的一个,并希望对复选框使用 'required' 属性以确保用户在提交表单时单击它。

我是否应该进行一些服务器端验证 - 以防有人使用不支持 html5 的浏览器?

更多信息:

我的表单如下所示:

[] 我接受条款和条件

提交

代码:

<input type="checkbox" required> I accept the terms and conditions<br />
<input type="submit" value="submit"/>

客户端表单验证是增强用户体验的好方法,它还提供了一些有助于传达需要输入的样式。

但是您 始终 仍然必须验证在服务器上提交的任何数据,以确保数据是干净和安全的。 required 属性可以被恶意用户操纵。

实际需要 CSS 所有浏览器都支持伪 class(不行,IE8 除外),如您所见

http://caniuse.com/#search=form%20validation

无论如何,您总是需要服务器端验证,因为无论如何客户端检查的数据都必须被视为不安全。

永远不要相信客户端的任何数据(无论是HTML还是JS,都是可以更改的。客户端的验证只是为了更好的用户体验。真正的安全在服务器端。

保存您在UI 背后的逻辑是不够的。某些 HTML 表单验证 在某些浏览器中不起作用 。所以服务器端验证是必须的!