如何防止客户端用户更改 onClick 函数中的参数
How to prevent the clientside user from changing arguments in an onClick function?
我刚刚意识到,在使用Firebug测试onClick函数时,用户很容易更改正在传递的参数的值。这可能会搞砸。
有没有简单的方法来防止这种情况,尤其是在需要通过参数时?
这
是不可能的。代码正在用户的计算机上执行。他们掌控一切。
如果他们编辑它并"搞砸",那么这就是他们的头。
如果他们编辑它并向您的服务器提交 HTTP 请求,并且您的服务器允许(例如)该请求删除属于其他用户的数据,那么问题是您的服务器没有检查提交请求的用户是否有权删除该数据。
您不能信任从客户端发送的任何内容。用户可能会手动编辑 URL 参数,或者脚本小子可能会向您发送甚至根本不使用浏览器的请求。您必须在服务器端验证所有内容。
不,这根本做不到。
将脚本加载到客户端计算机后。他可以根据需要使用/修改它。
我建议根据预期的值集和/或业务规则验证参数,无论结果正在处理何处(客户端/服务器)。理想情况下,验证检查发生在用户无法控制的服务器上。甚至可以修改客户端的验证以允许无效数据输入。
没有办法完全控制它 - 只能根据标准验证它。
您无法阻止此操作,因为 JavaScript 是客户端。此外,您永远不能信任客户端。
您应该在服务器端对任何请求进行验证,以保护您的数据免受客户端滥用。
你可以以某种方式让它隐藏在客户的视线
之外通过使用 .delegate()
前任。
$("table").delegate( "td","click", function() {<br>
// write here your function<br>
});
客户端可以执行此脚本,但它不是直接在他眼前的。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数