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

时间:2012-05-03 12:11:45

标签: javascript security onclick

我刚刚在使用firebug测试onClick函数时意识到用户很容易更改传递的参数值。这可能会弄得很糟糕。

有没有简单的方法可以防止这种情况,特别是在需要传递参数时?

5 个答案:

答案 0 :(得分:4)

这是不可能的。代码正在用户的计算机上执行。他们处于控制之中。

如果他们编辑并“弄乱”,那就是他们的头脑。

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

不,这根本无法完成。

将脚本加载到客户端的计算机后。他可以按照自己的意愿使用/修改它。

答案 3 :(得分:1)

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

无法完全控制它 - 仅根据标准对其进行验证。

答案 4 :(得分:0)

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

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

你可以以某种方式使它隐藏在客户眼中 通过使用.delegate()

<强> EX。

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


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