javascript闭包函数可以由用户更改吗

Can a javascript closure function be altered by a user?

本文关键字:用户 闭包 函数 javascript      更新时间:2023-09-26

我们有一个代码可以制作一些东西:

$(function(){
  //websocket connection
  //ajax requests
  //other stuff
});

如果加载了代码,浏览器已经编译了它,那么用户可以更改此代码并用更改后的代码重新加载页面吗?

因为这个匿名jquery函数中的函数不能在浏览器控制台中执行,因此它们是不可访问的,问题是:有可能破解这种类型的代码吗?

用户只需将匿名函数(包括其中的代码)复制到控制台并运行即可。
基本上,您发送到客户端的任何和所有代码都可以访问、修改和运行。

在服务器端验证任何需要验证的内容。使用客户端验证只是为了让您的应用程序"更漂亮"。

例如,它可以很容易地复制到Google Chrome中的控制台,从那里进行更改和启动。用户可以很容易地在"源代码"选项卡中看到这个脚本。所以,是的,这是可能的。所以,如果它是用户看不到的函数,我建议不要在客户端使用Javascript或任何脚本语言。

我不知道你的问题是什么,但有几个建议。

  • 永远不要相信用户,也不要相信来自客户端的任何东西。它可以很容易地操作始终检查数据服务器端。请检查字段的类型是否正确,尤其是在像PHP这样的语言中,不要使用整个POST数据,始终对其进行筛选
  • 最小化代码并使用闭包这样可以减少用户对代码的更改
  • 只允许用户访问他负责的部分,这样,如果他扰乱了你的代码,他就会被损坏
  • 如果可以的话,请使用安全的cookie和https。检查CSRF和XSS,并使用安全的方法

你无法避免用户会随心所欲,但你可以让他只能触摸他的数据