如果您使用HTML输入创建表单并使用&#34; required&#34;属性(<input type="text" required>
),是什么阻止用户通过使用他们的Web浏览器内置的开发人员工具或通过其他方式(如书签)加载JavaScript来手动删除属性?
换句话说,如何确保仍然需要所需的输入?
答案 0 :(得分:3)
客户端/浏览器几乎无法控制发送到服务器的请求。可以构建请求并将其传递给服务器而不涉及浏览器,因此服务器端代码负责确保随请求提供所需的参数(以及验证参数)。
答案 1 :(得分:1)
您需要考虑以下几点:
客户端上的所有内容都可以被客户端修改:没有什么能阻止我使用浏览器控制台或修改源代码来更改页面的部分内容,而且您无法阻止它。例如,看看你的问题有多少赞成:
显然,实际上并没有做任何事情,但那是因为所有繁重的工作都是由Stack Exchange的服务器完成的。
required
,人们仍然可以使用空格或asdf
填写字段并继续。仅仅因为需要输入并不意味着它是有效的。因此,考虑到这一点,请意识到您需要在服务器端工作以验证输入。人们不能轻易搞乱服务器,这是验证输入的最安全的方法。当服务器收到数据时,您需要处理验证,因为客户端总是容易受到用户修改。