Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript闭包函数可以由用户更改吗?_Javascript_Jquery_Html - Fatal编程技术网

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

javascript闭包函数可以由用户更改吗?,javascript,jquery,html,Javascript,Jquery,Html,我们有一个代码来制作一些东西: $(function(){ //websocket connection //ajax requests //other stuff }); 如果代码已加载,浏览器已对其进行编译,那么用户是否可以更改此代码并使用更改后的代码重新加载页面 因为这个匿名jquery函数中的函数不能在浏览器控制台中执行,因此它们是不可访问的,所以问题是:有没有可能破解这种类型的代码?用户只需将匿名函数(包括其中的代码)复制到他的控制台,然后运行它。 基本上,您发送给客

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

$(function(){

  //websocket connection
  //ajax requests
  //other stuff

});
如果代码已加载,浏览器已对其进行编译,那么用户是否可以更改此代码并使用更改后的代码重新加载页面


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

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


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

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

我不知道您有什么特别的问题,但有几点建议

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

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

用户只需将匿名函数(包括其中的代码)复制到控制台并运行它。使用Chrome的DevTools,用户确实可以更改函数并重新编译整个脚本。但是在其他浏览器中,他们仍然可以改变值等等。一个人可以从浏览器控制台运行他想要的任何东西。不仅仅是您的上述代码。:)@但它将失去它的范围…它是客户端的。也就是说,您应该始终将在客户端执行的代码视为不安全和不可信的代码。始终检查您在服务器端接收的数据;永远不要相信客户端数据,用户几乎总是可以修改它!