最初我有以下结构:
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 变量的目的,但我注意到浏览器中的网页开始显示所有包含的函数,即,如果在第一种情况下,当我使用调试工具查看页面或保存时磁盘上的那个页面我只看到 index.html 中包含一些小的 JavaScript 代码,但现在查看或保存 index.php 文件我看到 myfunctions.js.php 中的所有函数都可见。当然可见内容没有改变,但实际输出增加了 2 500 行。那会是一个安全问题吗?我应该避免这种在 JavaScript 中显示 PHP 变量的方式,还是我不应该关心它并让它保持原样?
我担心的是,在第二种情况下,我的所有函数都会打开,因此恶意用户可以看到所有服务器端 PHP 脚本名称和所需参数,从而提供了更多攻击方式。