如何知道是否从javascript控制台调用函数?

use*_*148 1 javascript ajax console function hide

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

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

Mic*_*ets 5

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

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

(function() {
    var myUncallableFunction = function() { alert('meow'); }
})();
Run Code Online (Sandbox Code Playgroud)

该函数myUncallableFunction只能从父函数中调用,因为它是该父函数的局部变量,因此在它之外是不可访问的.

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

(function() {
    var myUncallableFunction = function() { alert('meow'); }
    myUncallableFunction();
})();
Run Code Online (Sandbox Code Playgroud)