我想拒绝直接访问某个文件,但允许访问仅在我的网站上使用<script>
标记。
有人可以帮我使用PHP或.htaccess吗?
答案 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应该发出HTTP请求(Ajax),请记住它还会发送会话信息(例如cookie)。实际上,就服务器而言,从JS发出的查询不可能与常规请求(例如,点击链接)区分开来。这些请求可以像您的任何其他请求一样由您的服务器进行身份验证。
模糊您的JS文件。快速搜索您最喜欢的搜索引擎将返回数以千计的选项。
如果这仍然给您带来安全问题,那么您的JS代码可能会做得太多。从JS中获取关键功能,让JS调用服务器端API。