security - 在提交之前,如何确保 HTML 表单的元素没有被更改以在客户端进行黑客攻击?

标签 security forms

我想知道有什么方法可以防止 HTML 表单元素在提交之前在客户端发生变化(它们具有值(value)的元素,如隐藏元素)?

假设我有隐藏元素。我想确保它们的值没有被用户故意更改。

或者什么是 HTML FORM 安全最佳实践?

最佳答案

不,没有办法阻止客户端向您发送任意操纵或格式错误的请求。这不仅适用于 Web 应用程序,也适用于您无法实际控制客户端的任何应用程序。

最佳做法是预料到并处理它。这样做的具体机制包括:

  • 将数据保存在服务器端 session 变量中,而不是使用隐藏字段
  • 或者,使用加密哈希总和(包括盐和客户端的 IP 地址)来确保数据未被篡改
  • 通过在使用前去除潜在的 SQL 注入(inject)或 XSS 攻击的函数运行所有客户端提供的数据
  • 检查每个页面上的用户授权(这样人们就无法通过更改“编辑个人资料”页面上的 id 参数来查看/操纵其他用户的数据)

关于security - 在提交之前,如何确保 HTML 表单的元素没有被更改以在客户端进行黑客攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281544/

相关文章:

javascript - 根据从下拉框中选择的内容更改输入字段的值

javascript 表单验证未按预期工作

javascript - 如何指定输入元素中允许的最大字符数 - 设置 maxlength 属性是否足够?

security - Coldfusion 安全问题...如何隐藏文件目录?

sockets - 使用 SSL 的点对点套接字中自签名证书的安全性

node.js - textarea 和 input HTML 元素之间的安全差异?

html - 制作具有双列的表格

security - CSRF token 的生存期应达到多长时间?

c++ - 如何将对非托管 dll 的访问限制为仅特定的第 3 方(拒绝所有其他人的访问)?

c# - 如何将 C# 字符串变量从 Windows 窗体传递到 .BAT 文件