如何防止客户端用户更改 onClick 函数中的参数

How to prevent the clientside user from changing arguments in an onClick function?

本文关键字:函数 参数 onClick 何防止 客户端 用户      更新时间:2023-09-26

我刚刚意识到,在使用Firebug测试onClick函数时,用户很容易更改正在传递的参数的值。这可能会搞砸。

有没有简单的方法来防止这种情况,尤其是在需要通过参数时?

是不可能的。代码正在用户的计算机上执行。他们掌控一切。

如果他们编辑它并"搞砸",那么这就是他们的头。

如果他们编辑它并向您的服务器提交 HTTP 请求,并且您的服务器允许(例如)该请求删除属于其他用户的数据,那么问题是您的服务器没有检查提交请求的用户是否有权删除该数据。

您不能信任从客户端发送的任何内容。用户可能会手动编辑 URL 参数,或者脚本小子可能会向您发送甚至根本不使用浏览器的请求。您必须在服务器端验证所有内容。

不,这根本做不到。

将脚本加载到客户端计算机后。他可以根据需要使用/修改它。

我建议根据预期的值集和/或业务规则验证参数,无论结果正在处理何处(客户端/服务器)。理想情况下,验证检查发生在用户无法控制的服务器上。甚至可以修改客户端的验证以允许无效数据输入。

没有办法完全控制它 - 只能根据标准验证它。

您无法阻止此操作,因为 JavaScript 是客户端。此外,您永远不能信任客户端。

您应该在服务器端对任何请求进行验证,以保护您的数据免受客户端滥用。

你可以以某种方式让它隐藏在客户的视线
之外通过使用 .delegate()

前任。

$("table").delegate( "td","click", function() {<br>
  // write here your function<br>
}); 


客户端可以执行此脚本,但它不是直接在他眼前的。