如何防止其他网站链接到我的javascript文件?

时间:2011-07-14 09:46:24

标签: php javascript apache

我的服务器上托管了一些jquery插件,但我希望它仅供我的访问者使用..我很偏执其他网站可能只是链接到我的js文件并窃取我的带宽。 你会如何解决这个问题?

4 个答案:

答案 0 :(得分:10)

答案 1 :(得分:4)

在您的站点文件夹的根目录中创建一个.htaccess(对于带有ISAPI_Rewrite的apache或IIS)

将mysite.com替换为您记录所有内容的域名。必须在RewriteCond中进行反击,并在试图窃取带宽时将其替换为要发送给他们的页面

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\. (js|json)$ http://mysite.com/theif.txt

并使用以下代码将theif.txt添加到您的网站(任何试图窃取您的代码的网站都会将所有用户发送到http://www.yourhtmlsource.com/sitemanagement/bandwidththeft.html lol

top.location = "http://www.yourhtmlsource.com/sitemanagement/bandwidththeft.html";

他们很快就会将您的脚本从那里取消链接

答案 2 :(得分:3)

您可以直接使用您的javascript文件阻止它们,但是没有保证可以防止它们复制您的文件并手动使用它们,我已经可以看到您可能想要尝试的几个答案:

  • 通过php文件使用您的javascript文件:

    header("content-type: text/javascript");
    if(isset($_GET["name"]) && strpos("yourdomain.com", $_SERVER['HTTP_REFERER']))
         echo(file_get_contents("hidden_path_to_js/".$_GET["js_name"]."js"));
    else
         die("access denied");
    

在上面的示例中,您将检查引荐地址是否是您的网站,因此使用您的js文件

<script src="get_js_file.php?js_name=jquery"></script>

答案 3 :(得分:1)

你总是可以通过PHP文件运行javascript,使用.htaccess将所有请求路由到它。如果用户代理与您的网站不同,那么它可以发送403,否则它可以使用file_get_contents来返回该文件。

希望有所帮助

有用的htaccess模板:     CheckSpelling on     选项 - 索引     选项+ FollowSymlinks

DirectoryIndex index.php

RewriteEngine on
RewriteBase /js/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /js/index.php?p=$1 [L]