1

JavaScriptコンソールから関数を非表示にして、関数を呼び出すことができないようにする方法を知りたいです。

問題をよりよく理解できるように、Ajax を使用してデータベースにいくつかのレコードを追加する JavaScript 関数があり、他の誰もがコンソールからこの関数を使用して、データベースに必要な数のレコードを追加できるとします。コンソールからではなく 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 に答える