SEO工作事记(一)

By | 02/19/2016

从去年年底开始,进入了新的公司,从负责推广的推广经理成为了专职的SEO专员。
其实SEO并不是我的强项,虽然知道很多的理论,但是实操却差强人意,毕竟以前做站兴趣爱好占了很多因素,并没有很认真努力的钻研SEO。
首先说说在做SEO的事情中遇到的两件事情吧:

一、网站被恶意挂马

公司官网采用了一套开源的PHP程序,网站放置在阿里云服务器上,采用windows操作系统。
从去年11月份开始,官网隔三差五的被恶意挂马,去程序官网也没有找到漏洞更新。而阿里云一直提示有漏洞,于是花钱购买了一个月阿里的云盾服务,补丁打完后,发现网站依然被挂马。
后来将程序的原始文件进行覆盖替换,依然被挂马。仔细检查后发现,网站根目录下经常被恶意上传了木马生成文件,将这些文件删除后过两天还会被重新上传。导致经常需要还原服务器,导致网站收录极为不稳定。
后来想到一个方法,将网站整体备份后,格式化服务器,将服务器重装为CentOS系统,还原网站,从此解决了恶意挂马的问题。
因为win和linux的漏洞并不通用,而且针对linux的挂马情况国内是比较少的。

二、网站被恶意反向代理

什么是反向代理?

先说说正向代理的概念:

正向代理,也就是传说中的代理,他的工作原理就像一个跳板。简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器。这个代理服务 器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度, 只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

结论就是,正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内 容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

那么反向代理的概念呢?

比如用户访问 https://ijustin.pw 这个页面,但ijustin.pw实际上并不存在这个页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户。

但用户并不知情,这很正常,用户一般都很笨。这里所提到的ijustin.pw 这个域名对应的服务器就设置了反向代理功能。

结论就是反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。

恶意反向代理的危害

网站被恶意反向代理有什么危害呢?这里列举一下:

  • 首先肯定会占用服务器资源,网站打开速度受影响。
  • 其次,别人通过代理盗用你的网站数据,对用户与不是那么智能的搜索引擎而言,相当于建了一个与你一模一样的站点,那么很有可能你的站点会进搜索引擎沙箱,甚至被降权。
  • 如果被恶意代理的页面,还挂有你的联盟广告(比如Adsense),这就十分危险了,如果有人点击了上面的广告,很容易被Adsense封号。
  • 还有很多危害,读者可以自行脑补……

    js 级别的解决方案

<script type=”text/javascript”>
if (document.domain != ‘ijustin.pw’ && document.domain != ‘ijustin.pw’){
window.location.href=’https://ijustin.pw/’;
}
</script>

脚本很简单,如果地址栏中的网址不是 ijustin.pw  ,那么就把地址栏转向 https://ijustin.pw/ 。这段代码同样可以避免被人使用反向代理技术“伪造”一个跟自己一模一样的网站。

题外话:如何防止网站被iframe嵌入。有些人用iframe做了个框架,把我们网站嵌入其中,访客来浏览的时候,好像是在浏览他自己的网站一样,那么如何解决呢?以下方法可破:

<script type=”text/javascript”>
<!–
if (top.location != self.location)top.location=self.location;
// –>
</script>

php 级别的解决方案

js 级别的解决方案虽然能够让恶意代理页面跳回来,但是对搜索引擎不怎么友好。下面是服务器端(PHP)的解决方案,代码比较简单,就不多说了。

$proxy_rs = $this -> proxy_filter();
if( $proxy_rs != ‘ijustin.pw’ || $proxy_rs != ‘ijustin.pw’ )
{
echo ‘非法反向代理访问’;
//header(‘Location: https://ijustin.pw/’);
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’];
}

htaccess 级别的解决方案

.htaccess

RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php

proxy.php

<?php
$f = getenv(“HTTP_X_FORWARDED_FOR”);
$server = getenv(“HTTP_HOST”);
if (($f!=””)&&($server!=”ijustin.pw”)&&($server!=”ijustin.pw”)){
echo ‘本服务器禁止恶意反向代理!’;
}
?>

目前我在做SEO的网站使用的就是htaccess 级别的解决方案,由于恶意反向代理是我昨天才发现的,所以具体效果还在验证中,后续将会更新的。
(未完待续)

本文由 [Justin] 原创或整理发布,如需要转载请注明出处!本文链接:https://ijustin.pw/justin/195
如果你觉得本博内容不错,欢迎 [订阅我的博客],以便第一时间了解本博更新内容。

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据