网站全新改版,使用全新主题,精简文章,重新分类。同时建议大家使用FireFox、Opera、Safri、IE9+等高级浏览器访问!

从被黑的网站想到网站安全保护

Wordpress 木华澄 4419℃ 0评论

今天在网上溜达,从石油杂志上点击了一个连接,蓝天博客,显示如下画面(点击图片可查看大图)

自己仔细辨别一番,下面的说明蓝色说明文字如下:

被黑的网站

看完这个网站,自己心里以前曾经思考和注意过的个人网站的安全问题,又一次浮入脑海。

大型网站内容丰富,竞争激烈,被竞争对手黑掉的可能性很大,因此大型网站都有一帮安全专家在为网站保驾护航。因为个人网站在初期,访问量少,一般来说没有那个黑客把你当做目标,最多就是黑客为了练手,试试自己的技术,这时候小网站就成了砧板上的鱼肉了!

那么像我们搭建的个人博客怎样保证自己的网站安全呢,具体针对我建立博客所用的wordpress平台,应该首先做好以下几点:

1.删除错误提示。

当我们登录WordPress后台失败时会显示错误信息。如果有人想攻击你的博客那么他们会从错误提示里得到很多有用的信息,我们需要做的就是不显示任何信息。

解决:打开 functions.php 文件并添加如下代码:

add_filter('login_errors',create_function('$a', "return null;")); 

这段代码可以让返回的错误信息为空。

2.使用SSL。

如果你担心数据泄露或被截获,那就使用SSL连接方式吧。但是之前请确保博客主机支持SSL,如果不支持请直接跳过本条。

解决:打开 wp-config.php 文件(一般位于根目录)添加以下代码:

define('FORCE_SSL_ADMIN', true);

我们定义了FORCE_SSL_ADMIN常数,其值设置为true。这样就在WordPress里开启了SSL。

3.用.htaccess 保护配置文件。

WordPress用户都知道wp-config.php文件的重要性,它保存了所有的配置信息:用户名、密码等等。所以控制对 wp-config.php 的访问权限就变得尤为必要。

解决:在修改.htaccess文件前请先备份,然后打开并粘贴下面代码:

order allow,denydeny from all

修改后会拒绝任何对 wp-config.php 文件的访问。

4.建立访问黑名单。

是不是常被一些垃圾评论制造者所烦恼?如果是,需要做的就是屏蔽他们的IP,让他们再也无法访问你的博客。

解决:修改.htaccess文件添加以下代码,事前别忘备份。

order allow,denyallow from all
deny from 123.456.789
deny from 93.121.788
deny from 223.956.789
deny from 128.456.780

修改后上面这些IP就会被限制访问。

5.防止脚本注入。

脚本注入往往用来窃取用户信息,如果攻击者一旦得逞大多数情况下造成的损失很难挽回。

解决:依旧是.htaccess 文件添加以下代码,事先备份。

Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})RewriteRule ^(.*)$ index.php [F,L]

修改后所有的请求都会被检查是否包换脚本段,如果包含就会拒绝请求返回403错误。

6.防止图片盗链。

大多数虚拟主机和VPS都是限制流量的,而图片往往会消耗绝大部分流量。我们在希望自己文章被更多人访问和传播的同时又不得不去面对图片链接带来的巨大流量。所以防止图片外链是绝对必要的。

解决:修改 .htaccess 文件添加以下代码,之前一定记得备份。

RewriteEngine On#Replace ?mysite.com/ with your blog urlRewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]RewriteCond %{HTTP_REFERER} !^$#Replace /images/nohotlink.jpg with your "don't hotlink" image urlRewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] 

修改完成之后只有你的网站可以引用图片,而其他外部引用都会被替换为nohotlink.jpg 文件。你可以在nohotlink.jpg 里展示版权信息。当然你也可以指定替换为一个不存在的文件。

7.创建一个插件来阻止恶意请求。

黑客往往使用恶意查询来修着博客的薄弱点用来攻击,虽然WordPress自身有比较完善的防护机制,但也不是没有提高的余地。

解决:创建一个文本文件粘贴以下代码,并保存为 blockbadqueries.php 。上传到你博客的wp-content/plugins文件夹下,进入后台开启这个插件。

/*Plugin Name: Block Bad QueriesPlugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/Description: Protect WordPress Against Malicious URL RequestsAuthor URI: http://perishablepress.com/Author: Perishable PressVersion: 1.0*/
global $user_ID;
if($user_ID) {if(!current_user_can('level_10')) {if (strlen($_SERVER['REQUEST_URI']) > 255 ||strpos($_SERVER['REQUEST_URI'], "eval(") ||strpos($_SERVER['REQUEST_URI'], "CONCAT") ||strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||strpos($_SERVER['REQUEST_URI'], "base64")) {@header("HTTP/1.1 414 Request-URI Too Long");@header("Status: 414 Request-URI Too Long");@header("Connection: Close");@exit;}}}?>

修改后如果有过长请求(超过255个字符)或者URI中存在PHP函数就会返回一个414错误。

8.删除你的WordPress版本号,切记!

WordPress会在头文件里显示版本号。告诉攻击者你版本号往往意味着他们可以少走很多弯路,为了不让他们长驱直入为什么不隐藏版本号呢?

解决:粘贴如下代码至 functions.php 文件,保存并刷新你的博客。

remove_action('wp_head', 'wp_generator');

现在看,是不是没有版本号了。

9.修改默认管理员名。

蛮力攻击是破解一个密码最简单的办法之一。 该方法很简单:尽可能多的尝试不同的密码。如果他们知道的用户名,他们只需要破解密码。 这就是为什么你应该改变默认的“管理员”用户名——“admin”的原因。请注意,WordPress的3.0版本会让您选择您想要的默认用户名。 但是这个方法依然适合3.0以前的版本。

解决:打开数据库执行如下SQL语句,“Your New Username”为你想修改的用户名。

UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';

修改后使用新的管理员名户名登陆。

10.防止目录浏览。

默认情况下,大多数主机允许目录列表。 因此,如果在浏览器的地址栏键入www.yourblog.com/wp-includes,就会看到在该目录下的所有文件。 这无疑是一个安全风险,因为黑客可以看到上一次进行了修改的文件并访问它们。

解决:修改 .htaccess 文件添加以下代码,之前一定记得备份。

Options -Indexes

注意修改后并不会影响用户正常的访问这些文件

本文参考:提高WordPress博客的安全性的方法

相关安全方面的文章请参考:

你的WordPress博客安全吗?

wordpress安全:博客被攻击

预防木马,打造一个安全wordpress博客

转载请注明:程春杰博客 » 从被黑的网站想到网站安全保护

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(25)个小伙伴在吐槽
  1. 呵呵,很不错的分析!不过我现在都是在采用监控防止入侵!
    第一白银网2012-11-20 18:47 回复
    • 网站的安全还是让人很头疼啊
      程春杰2012-12-04 11:32 回复
  2. 看不太懂。。。。修改文件,具体是把代码放在什么位置呢?
    小王2012-11-12 15:14 回复
    • 我不知道你问的是哪一条代码,写到htaccess中的代码直接添加文件的最后面就可以了
      程春杰2012-11-12 21:38 回复
  3. 网站的安全保护工作特别重要
    ixwebhosting2012-09-06 10:30 回复
    • 恩,大站尤为重要,小站也必须注意啊
      程春杰2012-09-06 10:35 回复
  4. 防黑工作得做好,这很重要。也过来学习了
    骨鸽免费部落2012-08-22 03:23 回复
    • 欢迎常来交流
      程春杰2012-08-22 08:58 回复
  5. 小网站被入侵的可能性比较小,倒是DDOS防不胜防啊
    小鬼哥2012-08-19 23:24 回复
    • 恩,小网站我们做好基本的一些安全措施就基本上没有什么大的问题了
      程春杰2012-08-20 11:49 回复
  6. 黑客现在规模化作战,四处出击,无可避免啊!
    我的名字叫麒2012-07-13 14:05 回复
    • 是啊,估计现在很多都是拿小网站做练习
      程春杰2012-07-13 15:08 回复
  7. 平时都把这些疏忽了
    李佳亮2012-06-07 10:43 回复
    • 是啊,一般的都没有注意这些问题
      程春杰2012-06-07 15:59 回复
  8. 预防是最重要的
    蓝颜2012-06-05 21:30 回复
    • 对,网站的安全重在预防啊
      程春杰2012-06-06 00:32 回复
  9. 网站安全很重要,学习了
    小云子2012-06-05 17:22 回复
    • 是啊,没有安全,网站都不知道会成什么样子
      程春杰2012-06-06 00:32 回复
  10. 谢谢分享,学习了
    上海做网站2012-06-05 16:17 回复
    • 欢迎常来
      程春杰2012-06-05 16:29 回复
      • 今天我的一个测试用站点被黑客篡改了首页 安装的是最新版的wordpress3.4.1 页面和你的截图类似 黑底红字有些阿拉伯文 估计都是些显得蛋疼的小黑客 。 看了这篇文章 感觉很有用了 之前没感觉
        米多多2012-07-07 14:40 回复
        • 呵呵,大家都是这个心态,只有真正的经历过灾难才知道灾难的可怕,不过还好,测试网站就无伤大雅了,随时对于我们细心经验的站点备份数据是上上之策呀
          程春杰2012-07-07 18:34 回复