1

我想知道我们如何从 javascript 控制台中隐藏一个函数,以便不能从中调用它。

为了让您更好地理解问题,假设我有一个 javascript 函数,它使用 Ajax 在数据库中添加一些记录,其他任何人都可以从控制台使用此函数在数据库中添加任意多的记录。我希望从 Web 应用程序而不是从控制台调用该函数...我试图混淆代码以隐藏它,但我们仍然可以从 Google Chrome javascript 控制台找到该函数。

4

1 回答 1

5

无论您对代码进行了多少混淆和隐藏,任何可以在客户端执行的 javascript 都可以在控制台中执行,如果您希望对其进行真正的控制,您应该始终在服务器端运行权限/安全检查此类功能的安全性。

话虽如此,您可以在立即调用的函数表达式中重构代码,该函数表达式不会像往常一样从控制台轻松调用,如下所示:

(function() {
    var myUncallableFunction = function() { alert('meow'); }
})();

该函数myUncallableFunction只能从父函数内部调用,因为它是该父函数的局部变量,因此在其外部无法访问。

您仍然可以在该父级内部调用此函数,但如下所示:

(function() {
    var myUncallableFunction = function() { alert('meow'); }
    myUncallableFunction();
})();
于 2013-03-04T01:32:15.567 回答