我想知道如何从javascript控制台隐藏一个函数,以便无法从中调用它。
为了让您更好地理解这个问题,假设我有一个javascript函数,它使用Ajax在数据库中添加一些记录,其他任何人都可以在控制台中使用此函数在数据库中添加他想要的记录。我希望从Web应用程序而不是从控制台调用该函数...我试图对代码进行模糊处理以隐藏它,但我们仍然可以从Google Chrome javascript控制台中找到该函数。
答案 0 :(得分:5)
无论你多么混淆和隐藏你的代码,任何可以在客户端执行的javascript都可以在控制台中执行,如果你愿意,你应该始终在服务器端运行权限/安全检查对这些功能的安全性有任何真正的控制。
那就是说,你可以在一个立即调用的函数表达式中重构你的代码,这个函数表达式不会像往常那样从控制台轻松调用,如下所示:
(function() {
var myUncallableFunction = function() { alert('meow'); }
})();
函数myUncallableFunction
只能从父函数中调用,因为它是该父函数的局部变量,因此在它之外是不可访问的。
您仍然可以在该父级内部调用此函数,但是如此:
(function() {
var myUncallableFunction = function() { alert('meow'); }
myUncallableFunction();
})();