もともと私は次の構造を持っていました:
index.htmlファイル:
...
<script src="myfunctions.js" />
...
myfunctions.jsファイル:
...
function one() {
....
}
function two() {
....
}
function three() {
....
}
そのようにして2,500行以上のJavascirptを書きましたが、PHP変数を関数に追加する必要があったため、index.htmlの名前をindex.phpに変更し、 myfunctions.jsの名前をmyfunctions.js.phpに変更し、次のことを行う必要がありました変更:
index.phpファイル:
...
<?php
include("myfunctions.js.php");
?>
...
myfunctions.js.phpファイル:
<script>
...
function one() {
....
}
function two() {
....
}
function three() {
....
}
function four() {
var x = <?php echo $_conf['user_id'];?>
console.log(x);
}
</script>
JavaScript で PHP 変数を使用するという目的は達成しましたが、ブラウザーの Web ページに、含まれているすべての機能が表示され始めたことに気付きました。つまり、最初のケースで、デバッグ ツールを使用してページを表示したり、保存したりした場合です。ディスク上のそのページには、index.html に含まれる小さな JavaScript コードしか表示されませんでしたが、index.php ファイルを参照または保存すると、myfunctions.js.php のすべての関数が表示されます。もちろん、表示内容は変わりませんが、実際の出力は 2,500 行長くなりました。それはセキュリティ上の問題になりますか?JavaScript で PHP 変数を表示するこの方法を避けるべきですか、それとも気にせずそのままにしておくべきですか?
私の懸念は、2 番目のケースではすべての関数が開かれるため、悪意のあるユーザーがサーバー側の PHP スクリプト名と必要なパラメーターをすべて見ることができ、攻撃の手段が増えることです。