首页 技术教程

📝 文章最后编辑于:2020 年 10 月 31 日


引言

如果是小站或者刚建立的站,则不用担心。但如果有名气了,便可能出现小人反代你的网站,做成所谓的“镜像站点”、“盗版站点”。

这篇文章就是介绍如何防止一些简单的反代小人。

实施方法

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

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

RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php

再新建proxy.php文件,添加如下代码,这里提供了两个方案。

方案 a:

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

方案 b:

<?php
$f = getenv("HTTP_X_FORWARDED_FOR");
$server = getenv("HTTP_HOST");
if (($f!="")&&($server!="qian.blue")&&($server!="www.qian,blue")){
 echo '本服务器禁止恶意反向代理!';
}
?>

二、使用js代码判断域名

js级别的解决方案虽然能够让恶意代理页面跳回来,但是对搜索引擎不怎么友好。

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

三、使用php判断域名

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

方案 a:

<?php 
if($_SERVER['SERVER_NAME'] != 'qian.blue' ||$_SERVER['SERVER_NAME'] != 'www.qian.blue' )
{
exit('非法反向代理访问勿埋我心');
}
?>

方案 b:

<?php
$proxy_rs = $this -> proxy_filter();
if( $proxy_rs != 'qian.blue' || $proxy_rs != 'www.qian.blue' )
{
 echo '非法反向代理访问';
 //header('Location: http://www.qian.blue/');
 exit;
}

public function proxy_filter()
{
 /*
 $svrUrl = 'http://' . $_SERVER['SERVER_NAME'].$_SERVER["PHP_SELF"];
 if (!empty($_SERVER["QUERY_STRING"]))
 {
  $svrUrl .= "?".$_SERVER["QUERY_STRING"];
 }

 return $svrUrl;
 */
 return $_SERVER['SERVER_NAME'];
}
?>

如何防止网站被iframe嵌入

这是什么意思?

意思就是有些人用iframe做了个框架,把我们网站嵌入其中,访客来浏览的时候,好像是在浏览他自己的网站一样,这种行为也属实“优秀”。

解决办法

<script type="text/javascript">

if (top.location != self.location)top.location=self.location;

</script>

结语

以上方法是针对实时代理,如果对方用了缓存,可能就麻烦了~

可以试试把防盗链打来,并把CSS、JS文件的路径换一下,尝试搞乱对方的盗版站点。

另外:一定要记得禁止你服务器直接使用服务器IP访问你站点的功能,不然别人随便解析个域名到你IP就能访问你的网站内容了。




文章评论

目录