我的服务器上托管了一些jquery插件,但我希望它仅供我的访问者使用..我很偏执其他网站可能只是链接到我的js文件并窃取我的带宽。 你会如何解决这个问题?
答案 0 :(得分:10)
您可以使用.htaccess文件来限制域名。
参考1 http://underscorebleach.net/jotsheet/2004/06/htaccess-prevent-hotlinking
参考2 http://www.globinch.com/2011/04/13/prevent-hotlinking-of-image-script-css-etc-using-htaccess/
答案 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]