gpt4 book ai didi

javascript - 禁用从 chrome 控制台编辑 javascript?

转载 作者:行者123 更新时间:2023-12-01 07:14:53 31 4
gpt4 key购买 nike

所以,我今天才注意到,您显然可以在 chrome 控制台中运行 javascript。我不知道你能做到这一点。这真的很酷。

在我的 rails 应用程序中,我有一个外部 javascript 页面。该页面上的一些变量我希望是全局的,以便 JS 文件中的所有函数都可以访问它们。例如,我有一张 map ,我希望 map 对象在 javascript 文件中是全局的,因为这样我的所有函数都可以访问一个 map 变量而不是创建自己的 map 变量,而且我可以将复杂的操作分解为更小的函数。

这一切都很好,我知道该怎么做,而且效果很好。我现在的问题是,我可以保护变量不受外部影响吗?例如,您可以从 chrome 控制台更改所有 javascript 类变量的值。以及 map 中的方法是可访问和可执行的。我已将 map 设置锁定在其中一个页面上,因此它不可缩放或可移动,但是从控制台我可以简单地说map.setZoom(11) map 会放大到 11.. 我可以输入 map.dragable = true而且bam你可以拖动 map ..我真的不喜欢这个..

这还不算太糟糕,就像用户启用 map 拖动和缩放并不是世界上最糟糕的事情。但我仍然想禁用它。有任何想法吗?

编辑

感谢大家的回答和评论。我想我只会诉诸于不将任何可能变成恶意的东西放入我的 javascript 中,并做一些事情,例如将我的 map 变量传递给必要的函数以减慢人们的速度。

最佳答案

您可以使用立即调用函数 (IIFE) 表达式来防止变量和函数在全局范围内公开:

var a = 10;

(function() {
var b = 20;
})();
window.a让您查看和修改 a ,但你不能用 b :

enter image description here

Try it out here

我非常确定有一种方法可以编辑 b与 Inspector,但我没有花时间弄清楚。不要浪费时间试图阻止用户修改他们可以查看的代码。

关于javascript - 禁用从 chrome 控制台编辑 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13182952/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com