如何拒绝直接访问文件但允许访问仅在我的网站的脚本中使用它?

时间:2014-09-30 10:32:32

标签: php .htaccess

我想拒绝直接访问某个文件,但允许访问仅在我的网站上使用<script>标记。

有人可以帮我使用PHP或.htaccess吗?

1 个答案:

答案 0 :(得分:1)

你做不到。 src标记的<script>属性只是一个常规网址,可以像任何其他网址一样进行访问。没什么,没什么。

但是,如果你想:

防止未经授权的访问

将JS文件移到Web服务器文档根目录之外,以防止直接访问。从服务器端脚本提供JS文件,仅供授权方使用。 PHP中的示例:

file:publicScript.php

<?php
    if(access_granted()) { // use your usual authentication routine here
        header('Content-Type: application/javascript');
        readfile('/path/outsideOf/documentRoot/hiddenScript.js');
    } else {
        echo 'alert("access denied");';
    }

file:page.html

...
<head>
<script src="//publicScript.php"></script>
</head>
...

防止未经授权使用JS

如果JS应该发出HTTP请求(Ajax),请记住它还会发送会话信息(例如cookie)。实际上,就服务器而言,从JS发出的查询不可能与常规请求(例如,点击链接)区分开来。这些请求可以像您的任何其他请求一样由您的服务器进行身份验证。

防止逆向工程

模糊您的JS文件。快速搜索您最喜欢的搜索引擎将返回数以千计的选项。

如果这仍然给您带来安全问题,那么您的JS代码可能会做得太多。从JS中获取关键功能,让JS调用服务器端API。