gpt4 book ai didi

c# - 当在 Burp Suite 或任何类似工具中拦截表单提交时,是否有办法隐藏已发布的表单数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:18 27 4
gpt4 key购买 nike

enter image description here

有没有一种方法可以隐藏在提交表单时回传的键和值。因为这些键值可以被黑客使用安全测试工具(例如 burp 套件)篡改吗?

最佳答案

虽然 HTTPS 用于保护传输中的数据,但没有切实可行的方法来防止用户篡改其计算机上的数据。几乎每个现代浏览器现在都有内置或附加的开发人员工具,允许用户暂停脚本执行、更改客户端脚本变量、修改 HTML 等等。

可以用于从客户端到服务器来回往返且不会更改的数据(例如 UserID)的一种方法是在发送之前加密数据,然后在发送时解密它返回到服务器。另一种机制是采用预期不会更改的所有往返值,并针对它们计算哈希值,该哈希值可以存储在页面上的隐藏字段中。然后当他们返回时,重新计算散列并确保一切匹配。然后“BobLimitedUser”无法在不破坏散列的情况下通过操纵 HTML 将他的用户名更改为“Administrator”。

综上所述,基本事实只是您应该将来自不受您控制的系统的数据视为不受信任。最终输入验证应始终在服务器端执行(除了执行的任何客户端验证之外)。由于这种“双重验证”要求,对于复杂的验证例程,我实际上将使用 web 服务/AJAX 调用来执行客户端验证。然后我的客户端脚本和我的服务器代码可以简单地调用同一个例程,一次在提交期间,一次在提交之后。

如果您采用在两端验证所有输入的方法(可以这么说),那么篡改真的不应该成为问题。如果 BobLimitedUser 想要操纵 HTML,以便他可以将下拉列表值从一个值更改为他有权访问的另一个值,那就是浪费他的时间。如果他设法将某些内容更改为导致数据完整性或安全问题的值,这就是服务器端验证要防止的情况。

简而言之

  • 永远不要相信客户端脚本生成的任何东西。它太容易操作了(或者甚至有一些旧脚本被浏览器缓存,变得过时,破坏了一些东西)
  • 客户端验证用于响应性和可用性。服务器端验证是为了数据的完整性和安全性
  • 不要将敏感信息传递给客户并相信它会完好无损地返回。如果必须,则使用加密来保护它,或使用散列来验证它。
  • 甚至不必费心尝试在客户端加密/散列内容
  • 在传输过程中使用 HTTPS 保护数据
  • 实现安全相关错误的日志记录/警报。这样,如果您每天都收到 BobLimitedUser 试图利用您的应用程序的警报,您可以与您的 IT 安全部门联系并从他的机器中删除病毒,或者可以适本地处理他

数据验证是一个重要的讨论话题,我建议您查看 OWASP 引用指南(信息太多,无法在此处复制):https://www.owasp.org/index.php/Data_Validation

最后一点要考虑...如果您有客户端脚本应用程序,那么我假设您正在使用 AJAX 和 Web 服务来传输数据。无论您编写什么客户端脚本,是什么阻止恶意用户简单地使用类似 Fiddler 的东西来绕过客户端脚本和浏览器本身,直接向您的 Web 服务发送请求?确保安全的唯一方法是验证服务器上的所有内容。

关于c# - 当在 Burp Suite 或任何类似工具中拦截表单提交时,是否有办法隐藏已发布的表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33142502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com