防止网站被反向代理的方法

/ 0评 / 3

一、使用.htaccess禁止反向代理

在站点根目录下新建 .htaccess 文件,然后添加如下的内容:

RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php

再新建proxy.php文件,添加如下代码

<?php  
$f = getenv("HTTP_X_FORWARDED_FOR");  
$url = "https://www.cnmcom.com";  
if ($f!=""){  
print "";  
print "";  
}  
?>

二、使用js代码判断域名

<script type="text/javascript">  
if (document.domain != 'cnmcom.com' && document.domain != 'www.cnmcom.com'){
window.location.href='https://www.cnmcom.com';
}
</script>

这种是首先判断他的域名是不是cnmcom.com这个域名,如果是则正常访问,如果不是则跳转到我们https://www.cnmcom.com网站。

三、使用php判断域名

这种方法跟使用js代码来跳转域名是一个道理,都是先判断域名,如果是代理的域名则进行跳转,代码如下:

<?php 
if($_SERVER['SERVER_NAME'] != 'cnmcom.com' ||$_SERVER['SERVER_NAME'] != 'www.cnmcom.com' )
{
exit('非法反向代理访问');
}
?>

如果是实时代理的话,上面三种方法就已经足够了,但如果他使用了缓存,将代理的网站缓存到他自己的服务器上面,再使用这些就不管用了,因为内容已经被抓取到对方网站上去了,你这里做的更改对方并不会更新到,这个时候如果有用CND,类似阿里云CDN,上面有个防止外链,把防外链给开启,这样对方调用你网站的图片等资源就不会显示了。
一般的网站CSS,JS调用基本上用的都是绝对路径,所以我们还可以重命名CSS,JS的文件包,尝试打乱对方网站布局。
另外:一定要记得禁止你服务器直接使用服务器IP访问你站点的功能,不然别人随便解析个域名到你IP就能访问你的网站内容了

发表评论

邮箱地址不会被公开。 必填项已用*标注