繁体   English   中英

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

[英]How can I prevent other sites from linking to my javascript files?

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

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

将 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哈哈

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

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

您可以直接使用您的 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>

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

希望有帮助

有用的 htaccess 模板:CheckSpelling on Options -Indexes Options +FollowSymlinks

DirectoryIndex index.php

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM