【问题标题】:is html5 input 'required' a secure validation technique?html5 输入“必需”是一种安全验证技术吗?
【发布时间】:2017-11-01 13:47:10
【问题描述】:

我担心网络安全以及在输入标签上使用 HTML5 required 字样。我正在尝试将其用作“表单输入验证”的一部分。在输入标签上使用 HTML5“必需”是对验证可靠的东西,还是很容易被试图绕过输入字段要求的用户操纵。

我搜索了有关 html 安全性的信息,但几乎没有找到相关信息。

谢谢

【问题讨论】:

  • SO 确实需要非常具体的格式,包括经过证明的努力和研究,因此关键是确保您以真正针对核心问题的方式构建问题,在您的情况下是安全性使用 required 属性作为表单验证的一种方式。
  • 我个人不会单独使用 required 关键字,因为它是客户端元素,因此可以很容易地被某人修改。要安全地执行此操作,您还需要在服务器端验证用户的输入。
  • 谢谢...我不太确定为什么“需要”它在那里?但这就是我一直在寻找的……服务器端的安全性更好。
  • 我会说服务器端安全是必要的,没有它我不会建立一个链接到数据库的网站,我很高兴这对你有帮助,接受我的回答虽然会很感激

标签: html security web input required


【解决方案1】:

简而言之,答案是否定的,客户端代码不是依赖安全检查的安全场所。

使用required 的方法为用户提供反馈并提供更好的用户界面,但为了安全起见,您需要对传递到服务器端的所有数据执行保真度检查,具体操作方式取决于您的支持架构。

要在 cmets 中回答您的问题,required 属性可以防止在字段未完成的情况下提交表单,但这纯粹是为了帮助用户知道它是必需的。如果你有一个黑客只是从标记中删除 required 属性,那么他们无论如何都没有好处,这就是后端检查可以拯救你的地方。

【讨论】:

    【解决方案2】:

    在我看来,这不是一种有效的方法。使用浏览器上该字段上的检查元素可以轻松更改必需属性。 这里最重要的是要记住,所有客户端验证都是您的第一道防线,但大多数时候您需要一个额外的层来检查服务器端。 如果您的服务器没有额外的验证,那么我可以在不使用您的表单的情况下向表单的操作字段发出 http post 请求,而无需使用邮递员(chrome 扩展)等工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多