繁体   English   中英

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

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

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

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

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

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

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

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

不,这根本无法完成。

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

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

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

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

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

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

EX。

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM