如何知道从源代码加载php文件

时间:2011-11-22 23:16:41

标签: php javascript zend-framework code-access-security

我正在使用我的JS文件,我现在拥有的是带有JS头的独特php文件,如果设置了变量,它包含真正的js文件,这很好。

“home”页面包含php-js文件的脚本标记:

<head>
    <script type="text/javascript" language="javascript" src="bootstrap.php"></script>
</head>

bottstrap.php文件类似于:

if(isset($hostData) && !empty($hostData)) {
    include('bootstrap.js');
}else {
    echo "document.write('<center><bold>PLEASE DO SOMETHING...!</bold></center>');";
}

所有看起来都很好,但是当查看源代码(CTRL + U)时,浏览器将“bootstrap.php”部分显示为链接,如果点击它显然会重定向到http://mydomain/bootstrap.php和js代码很容易看到,这正是我不想要的......

所以我的问题是,是否有任何php方式知道文件是从浏览器的“渲染视图”加载还是从浏览器的“源代码视图”加载???

真正感谢任何帮助=)

6 个答案:

答案 0 :(得分:1)

  

并且可以很容易地看到js代码,这正是我不想要的......

您不希望看到JS,但您确实想要使用它吗???


如果你想在你的页面中使用js文件,你的代码有问题。

您需要包含/要求文件:

<script type="text/javascript" language="javascript" src="<?php include bootstrap.php ?>"></script>

否则浏览器将加载引导程序文件的内容,但您希望在其中运行代码(只能在服务器上完成)。

此外:

变化:

include('bootstrap.js');

echo bootstrap.js;

修改

重新阅读你想要的问题(以及其他答案):让你的JS代码不可见(如果错误,请纠正我)。

答案是:不能做到。

您可以尝试对代码进行模糊处理,但需要有人想要查看代码才能“解码”。

答案 1 :(得分:1)

简而言之,没有。您无法向用户隐藏脚本来源。您可以做的最好的事情是使用YUICompressor等工具对其进行模糊处理。

答案 2 :(得分:1)

你无法隐藏javascript代码。它需要由客户端执行,即使你试图通过严格格式化代码来隐藏它,像firebug这样的工具也可以轻松地内省代码并提取代码。

答案 3 :(得分:1)

说实话,我认为你实际上并不能像那样隐藏它。我假设你要做的最好的事情是useragent字符串,但我假设如果你在浏览器中“查看源代码”,它仍会发送常规标题。

我能想到添加JS的唯一方法是在视图源模式下不显示它是通过javascript实际加载外部文件(你甚至可以将js文件的路径分解为变量,所以它不是真的人类可读的,我不建议。

如果有人想要使用你的javascript,他们就没有办法避免它。

答案 4 :(得分:0)

尝试使用$_SERVER["HTTP_referer"],其中包含调用此文件的网址。

答案 5 :(得分:0)

我很遗憾从这里消失...... 我决定实现的最佳解决方案非常简单:不要在JS代码中显示任何URL或PHP文件;所以在过去的几个月里,我使用了一个独特的PHP文件来完成所有必要的数据库查询,一个存储过程动态生成JS所需的所有URL。 通过这种方式,URL每次都会变化,我称之为“差逻辑”的用户可以免费查看/复制我不介意服务器数据是安全的。

感谢所有有价值的答案!!!