如何禁止网站被反向代理
前几天两个站点被别人完全境像代理,基本上就是直接让他给复制过去了,我也是醉了,直接镜像过去,然后再缓存到他自己的服务器上面,真是绝了,你自己的站点再加什么代理去反代理也不管用了,因为他的站点根本就不变,使用了 .htaccess 来反代理,也使用了 js 判断域名都不管用,所以我一直在判断他使用了缓存机制,如果不使用缓存,时时代理的话肯定是可以的,夏日博客先把这两种方法来总结一下吧。
一、使用 .htaccess 禁止反向代理
在站点根目录下新建 .htaccess 文件,然后添加如下的内容:
RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php
再新建 proxy.php 文件,添加如下代码保存.
<?php
$f = getenv("HTTP_X_FORWARDED_FOR");
$url = "http://www.xiariboke.com";
if ($f!=""){
print "“;
print ““;
}
?>
二、使用 js 代码判断域名
<script type="text/javascript">
if (document.domain != 'xiariboke.com' && document.domain != 'www.xiariboke.com'){
window.location.href='http://www.xiariboke.com/';
}
</script>
这种是首先判断他的域名是不是 xiariboke.com 这个域名,如果是则正常访问,如果不是则跳转到原网站。
三、使用 php 判断域名
这种方法跟使用 js 代码来跳转域名是一个道理,都是先判断域名,如果是代理的域名则进行跳转,代码如下:
<P><?php </P>
<P>if($_SERVER['SERVER_NAME'] != 'xiariboke.com' ||$_SERVER['SERVER_NAME'] != 'www.xiariboke.com' )
{
exit('非法反向代理访问');
}</P>
<P>?></P>
如果是时时代理的话,上面三种方法就已经足够了,但如果他使用了缓存,将代理的网站缓存到他自己的服务器上面,再使用这些就不管用了,因他被他代理的站都不更新了,你再怎么改都不行,尤其现在的阿里云CDN,360CDN又怎么牛,而我的站点使用的就是阿里云CDN,上面有个防止外链,把防外链给开启才解决。
一般的网站CSS,JS调用基本上用的都是绝对路径,所以我们可以重命名CSS,JS的文件包以达到对别人境像网站的控制,把他的页面搞乱,这样相信坚持不了几天,他就会换成其它网站了。
来自http://www.xiariboke.com/article/2401.html
相关:
终于搞定在nginx上支持.htaccess伪静态了
nginx支持.htaccess文件实现伪静态的方法分享
标签:代理