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