【问题标题】:Can hidden fields be edited by the user?用户可以编辑隐藏字段吗?
【发布时间】:2017-02-02 17:13:43
【问题描述】:

添加安全问题,以便用户在超过最大尝试次数时可以重置密码。为身份验证机制做这些隐藏字段是不是很糟糕?

<input type="hidden" name="securityAnswered" value=true>
<input type="hidden" name="exceededAttempts" value=true>

用户可以从客户端进入并编辑这些隐藏字段吗?

【问题讨论】:

  • 如果您使用的是 google chrome 或 firefox,您可以简单地更改它,只需右键单击并选择 Inspect Element Item ,然后您可以更改客户端事物的值
  • 还有其他程序可以执行此操作,例如 firebug ,...
  • 在您的控制台中,执行:document.querySelector("input[name=securityAnswered]").value = "wibble"

标签: html security hidden-field


【解决方案1】:

用户可以从客户端进入并编辑这些隐藏字段吗?

当然!客户端的任何内容都可以编辑。你不能阻止用户这样做。

您必须记住,客户端可以随时向服务器发布任何内容。

【讨论】:

  • 好的,那么将这些信息从表单发送到服务器的另一种方式是什么?
  • @rtd353 验证应该在服务器上完成。没有其他办法:客户端发布数据,服务器接收并验证。
  • 这是真的,但我只想补充一点,如果您真的想在客户端保存数据,您仍然可以使用安全会话。
  • @PhilipFeldmann 啊,说得好!但我想最好在会话中仅将这些信息存储在服务器上。
  • @ionica 我正在服务器上进行验证。我只在重置密码中添加了 securityAnswered 隐藏字段,这样如果用户提交无效密码,它将表明安全问题已被回答,因此用户可以再次尝试重置。
【解决方案2】:

当然可以,任何人都可以通过点击ctrl+maj+i来更改它

【讨论】:

    【解决方案3】:

    是的,渗透测试人员一直使用诸如 Burp 或 Zap 之类的拦截代理来执行此操作。

    https://portswigger.net/burp/proxy.html https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

    还有许多其他方法可以修改此类数据,包括浏览器中的开发人员工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2020-02-22
      • 2016-12-19
      • 1970-01-01
      • 2016-03-03
      • 2012-02-13
      相关资源
      最近更新 更多