HTML5表单验证中的“Required”属性:好主意还是坏主意?

7
我正在使用最简单的HTML 5表单,并希望使用“required”属性来确保用户在提交表单时单击复选框。如果有人使用不支持HTML5的浏览器,我是否需要一些服务器端验证呢?
更多信息: 我的表单如下所示: [] 我接受条款和条件 提交
代码:
<input type="checkbox" required> I accept the terms and conditions<br />
<input type="submit" value="submit"/>

3
是的,你总是需要服务器端验证。这种(客户端/HTML/JS)验证不是可靠的限制,但你也需要它来引导用户输入。开发者很容易违反这一点。 - Sami
应该关闭。我不确定它属于哪个类别,是不是离题、过于宽泛或者主观性太强。我不确定。但这不是一个编程问题。它是在询问关于某个主题的指导,而不是针对任何具体的困境。 - Sami
5个回答

8
客户端表单验证是提高用户体验的好方法,它还提供了一些样式,可以帮助传达输入必填的信息。
但您始终还需要在服务器上验证提交的任何数据,确保数据干净且安全。恶意用户可以操纵"required"属性。

3

永远不要相信来自客户端的任何数据(无论是HTML还是JS,它们都可以被更改)。在客户端进行验证只是为了提供更好的用户体验。真正的安全措施应该放在服务器端。


2

所有浏览器都支持实际所需的CSS伪类(不包括IE8),您可以在此处查看

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

无论如何,您始终需要服务器端验证,因为必须考虑客户端检查的数据是不安全的。


0

仅仅在UI后面保存逻辑是不够的。一些HTML表单验证在某些浏览器中无法正常工作。因此,服务器端验证是必须的!


0
客户端验证是指在将用户输入发送到服务器之前,由浏览器对其进行验证的过程,这可以使用HTML属性、JavaScript或其他脚本语言来完成。 这种验证方式不能保证验证没有被黑客和恶意用户篡改,他们经常会找到这样的弱安全协议中的漏洞。 因此,在生产级企业级软件和其他可直接部署到网络应用程序中,强烈建议使用服务器端验证协议,以确保数据没有被处理不当。 例如:Spring Boot使用“spring-boot-starter-validation”依赖项在pom.xml文件中,以将其服务器端验证方法引入程序中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接