如何将wordpress博客安全防护做到极致

WordPress起初是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持PHP和MySQL数据库的服务器上使用自己的Blog。

  用wordpress搭建好博客以后需要做一些防护工作:

  1.选择安全可靠的主机

  谨慎选择一款安全可靠的主机,不要使用免费主机和劣质主机。免费主机只适合用来学习程序和建站方法,但是倡萌一直不建议使用免费主机来托管正式上线的网站。当然了,最好也不要使用那些特别廉价,管理经验不足的主机商的服务。

  2.升级到WordPress最新版

  只从WordPress官方下载源码,不要到第三方网站下载。尽可能升级到WordPress最新版,及时修补程序漏洞,包括WordPress核心源码、WordPress主题以及WordPress插件。

  3.使用官方WordPress主题和插件

  这里所说的官方,一是WordPress官方,二是主题或插件开发者的官方,尽量避免使用“破解”版主题、插件,慎用网上传播的原本是收费,但是被人恶意提供免费下载的主题、插件。

  4.修改数据库默认前缀wp_

  很多朋友安装WordPress都没有修改数据库前缀,如果你打算修改默认的前缀wp_,请根据如何修改WordPress数据库前缀来修改。

  5.修改默认的用户名admin

  WordPress3.*以上已经支持安装时自定义登录用户名,如果你使用默认的admin,建议你根据下面的方法进行修改:

  方法一:后台新建一个用户,角色为管理员,然后使用新用户登录,删除默认的admin用户。

  方法二:登录phpmyAdmin,浏览当前数据库的wp_users数据表,将user_login和user_nicename修改为新用户名。同时建议修改“我的个人资料”中的的昵称,然后设置“公开显示为”非用户名的其他方式:

  6.使用高级密码,经常更换密码

  建议使用含大写字母、小写字母、数字和其他符号的复杂密码,比如nuH4j&*aHG%dMz,避免使用生日、手机号、QQ号等。

  7.隐藏WordPress版本信息

  默认情况下会在头部输出WordPress版本信息,你可以在主题的functions.php最后一个?>前面添加:

  //隐藏版本号

  functionwpbeginner_remove_version(){

  return”;

  }

  add_filter(‘the_generator’,’wpbeginner_remove_version’);

  8.修改wp-admin目录的访问权限

  你可以通过限定IP地址访问WordPress管理员文件夹来进行保护,所有其他IP地址访问都返回禁止访问的信息。另外,你需要放一个新的.htaccess文件到wp-admin目录下,防止根目录下的.htaccess文件被替换。

  9.定期备份网站数据

  可以借助WordPress备份插件进行自动备份或手动备份:WordPress数据库定时备份插件:WordPressDatabaseBacku

  使用WordPress自带导出导入功能备份和恢复网站

  WordPress克隆/备份/搬家插件:WPClone

  WordPress超强备份插件:BackWPup(支持FTP/Email/本地/网盘)

  10.安装安全插件

  WordPressFirewall2该插件可以帮助你识别/阻止一些有效的攻击,例如目录扫描、SQL注入、WP文件扫描、PHPEXE扫描等,并可将其定向到404或者首页。如果有问题还可以通过电子邮件通知你处理,还可以阻止一些IP的访问。

  BetterWPSecurity由于大多数的WP网站存在插件漏洞、弱口令、过时的插件/程序,隐藏这些漏洞可以更好的保护网站,例如保护登录和管理区(控制面板?仪表盘?)。LoginLockdown这个插件可以记录失败的登录尝试的IP地址和时间,若是来自某一个IP地址的这种失败登录超过一定条件,那么系统将禁止这一IP地址继续尝试登录。

  LimitLoginAttemptsLimitLoginAttempts限制登录尝试的次数来防止暴力破解,增强WordPress的安全系数。

  WPSecurityScan该插件会自动按照以上的安全建议对WordPress进行安全扫描,查找存在的问题。

  11.修改WordPress后台登录地址

  将下面的代码添加到当前主题的functions.php文件:

  //保护后台登录

  add_action(‘login_enqueue_scripts’,’login_protection’);

  functionlogin_protection(){

  if($_GET[‘word’]!=’press’)header(‘Location:http://www.malayke.org/’);

  }这样一来,后台登录的唯一地址就是http://yoursite/wp-login.php?word=press,如果不是这个地址,就会自动跳转到http://www.malayke.org/,不信你试试!你可以修改第4行的Word、press和http://www.malayke.org/这三个参数。

  12.避免WordPress泄露你的用户名

  你有没有想过,如果你的网站的登陆名被别人知道了,偏偏他是一个比较精通WordPress的人,而且会写脚本暴力破解,那么后果就不堪设想。实际上,Wordpress这么一个漏洞,至今依然存在,并且常常会被黑客利用

  想要知道WordPress的管理员用户名?很简单,只要在网站的域名后面加/?author=1就行了。

  如果/?author=1显示404界面,那很可能是以前有过admin用户,后来站长发现用默认帐户admin太不安全了,就新建了一个管理员帐户,并删除了admin帐户。这种情况下,用/?author=2就能显示出用户名了。如果使用admin帐户,确实不安全,但是如果你的博客使用一个复杂的用户名,却经不起这么简单的一个URL的考验,这和使用admin帐户没有根本上的区别。既然存在漏洞,那么就要去填补它。要填补这个漏洞,倒还真的不是什么难事。我的思路就是,只要访问主页url后头有author参数就让他跳到主页

  将下面的代码添加到当前主题的functions.php文件:

  add_filter(‘author_link’,’my_author_link’);

  functionmy_author_link(){

  returnhome_url(‘/’);

  }

  呵呵,大家有没有发现这个思路上面修改WordPress后台登录地址是一样的原理?

  至此,有了以上的防护工作,你辛辛苦苦搭建的wp博客就不会没那么容易的被黑阔光顾。

WordPress文章自动生成二维码

调用自动生成二维码网站的API接口,为wordpress文章自动生成二维码。

将下面代码添加到主题single模板的适当位置即可。

国外的:

  1. <img src=“http://api.qrserver.com/v1/create-qr-code/?size=150×150&data=<?php the_permalink(); ?>” alt=“<?php the_title(); ?>”/>

国内的:

  1. <img src=“http://qr.liantu.com/api.php?w=200text=<?php the_permalink(); ?>” alt=“<?php the_title(); ?>”/>

WP Super Cache静态缓存插件简明使用教程

WordPress静态缓存插件众多,孰优孰劣,这里不予评判,只说一说使用率最高的静态缓存插件WP Super Cache的基本使用方法,包括插件安装设置与停用删除缓存。

该插件在Wordpress后台插件安装页面,一直处于首页推荐位置,可知其是官方极力推荐的插件之一。

安装WP Super Cache插件

这里约100字略过….

插件设置

一、准备工作

保证wp-content目录有读写权限,因为之后生成的缓存文件会存放在这个目录中。使用Ftp客户端登录空间,右键wp-content目录属性设置许可权限为755。

同时,保证Wordpress根目录的wp-config.php和.htaccess文件也有写入权限,最好将wp-config.php和.htaccess文件作一下备份。

二、插件设置

进入插件设置页面,插件支持多语包括简体中文。

直接进入插件“高级”设置选项卡页,勾选所有标有“推荐”字样的选项,另外包括“当某页面有新评论时,只刷新该页面的缓存”这项。

缓存超时时间建议设置为“ 0”,有必要时手动清理缓存。

其它选项卡设置页面,无需设置。

如果你不清楚其它未推荐的选项功能是什么,就不要尝试了。

需要说明的是缓存模式有三种:

  • mod_rewrite 缓存模式。 (推荐)
  • PHP 缓存模式。
  • 传统缓存模式。

如果选择非推荐的 mod_rewrite 缓存模式,缓存效果一般,个人感觉也就没必要使用这款缓存插件了。

三、更新规则

设置完毕后,点击更新按钮,会提示你点击“更新 Mod_Rewrite 规则”按钮,向下滚动找到该按钮并点击。

插件会自动向Wordpress根目录的wp-config.php和.htaccess文件写入相关规则。

同时默认缓存目录的中.htaccess也必须有规则。

 清理缓存及停用插件

1、清理缓存

可以定期手动清理缓存文件,打开WP Super Cache插件设置页面,点击“内容”选项卡,点击“删除缓存”。

如果你与我一样在不停地折腾主题,这时就需要随时手动清理缓存,才能查看修改调整后的情况,否则显示的还是之前的静态缓存内容。

2、停用插件

重复上一步(必须),之后点击“高级”选项卡,取消“启用缓存以便加快访问。 (推荐)”勾选,并点击下面的“更新”按钮,

3、完全删除插件

重复上面两步(必须),然后进入插件页面停用WP Super Cache插件,并删除。

正常情况下删除WP Super Cache插件时,会将之前插件所修改和创建的缓存文件夹一并删除,但也可能有例外。所以,登录Ftp客户端,用之前备份的wp-config.php和.htaccess文件覆盖Wordpress根目录的同名文件,并删除wp-content目录的cache文件夹,这样才能完全卸载并彻底删除缓存文件。

另外,建议安装网页压缩插件:Autoptimize与WP Super Cache配套使用,可以进一步加快网页打开速度。

设置Autoptimize插件时,只需要勾选“优化 HTML 代码和优化 CSS 代码”,其它默认即可,不要勾选“优化 JavaScript 代码”否则可能造成主题部分功能不可用,切记!

禁止WordPress后台加载谷歌字体

禁止Wordpress后台加载谷歌字体

最近发现登录Wordpress后台异常缓慢,经常卡在fonts.googleapis.com,这是由于Wordpress后台外链加载了谷歌字体(代码位置在wordpresswp-includesscript-loader.php第580行),而谷歌服务器大家都知道的原因国内访问困难,严重影响页面加载速度。

 

解决办法:

将下面代码添加到主题functions.php文件中:

  1. function coolwp_remove_open_sans_from_wp_core() {
  2.     wp_deregister_style( ‘open-sans’ );
  3.     wp_register_style( ‘open-sans’, false );
  4.     wp_enqueue_style(‘open-sans’,);
  5. }
  6. add_action( ‘init’, ‘coolwp_remove_open_sans_from_wp_core’ );

之后,再次登录后台速度明显提升。

代码取自 Remove  Open Sans font from WP core 插件,也可以直接安装启用该插件。

相似功能的插件:Disable Google Fonts

因Google字库中只有英文,对国人无任何用处,换用国内某字体服务的方法同样意义不大,禁掉最实用。

上述方法对前台主题加载Google字体无效,国外主题也多采用外链Google字体,自行手动修改模板删除相关代码。

以Wordpress默认主题Twenty Fourteen为例,打开主题functions.php模板文件,查找并删除:

  1. //fonts.googleapis.com/css

其它主题类似,但可能不在functions.php模板中,只能逐一文件查找,只搜索google关键字就可以了。

注:这已是目前国内使用Wordpress所必须做的,建议国内主题设计者直接集成在主题中,不然刚接触WP的新手,会因此放弃,瓷瓶国又一悲剧!

为导航菜单添加个性图标字体

目前图标字体非常流行,图标字体使用简单,与图片格式的小图标相比,支持视网膜显示,可以无限放大。特别是一些响应式设计的主题模板,都会或多或少使用图标字体.

具体方法:

一、WP后台–插件–安装插件页面搜索:Font Awesome 4 Menus,下载安装并启用。

二、WP后台—外观—菜单,进入菜单设置页面,选择并编辑一个菜单项,在CSS类中输入一个图标字体选择器名称,如图:

为导航菜单添加个性图标字体

font

如果在编辑菜单项目面板中无CSS类,可以打开右上角的“显示选项”,在显示菜单高级属性中勾选“CSS类”。


提示:Wordpress 4.2+版本有BUG,无法打开右上角的“显示选项”,可参阅下文提供的方法解决:

 

到设置中将语言切换到英文,之后菜单“显示选项”就可以正常使用了,勾选”CSS Classes”后,再切换回中文,之后在编辑菜单面板就会出现CSS类选项。


 

图标字体选择器名称,打开此页查看:http://fortawesome.github.io/Font-Awesome/icons/

点开一个认为合适的图标字体,在下会显示类似:

  1. <i class=“fa fa-home”></i>

只需在菜单CSS类中输入fa fa-home就可以了。

当然这个图标字体库并不只局限于使用在导航菜单上,只要把相应的图标代码加到主题模板的相应位置,也同样可以显示。

如果认为上面插件提供的图标字体不符合自己的要求(其实这套Font Awesome图标字体早已烂大街),还可以自己做一套更加个性化的图标字体。

图标字体在线制作:https://icomoon.io/app/

不能忽视的404页面

原文:http://www.happinesz.cn/archives/345/

有时你会发现,当你用搜索引擎去到一个内容不存在的页面时,一个简单的错误页面总是让你失望,但一个漂亮却相反地让你想继续,并留下查看这个网站。这也许就是自定义404页面的重要性与必要性所在。然而,404错误页面的设置却在很多时候被忽视了。

你是否跟我一样呢?我认为博客设置一个404页面是非常必要的,特别是那些换过链接模式的Blogger。事实上设置并不困难,主要是经常被大家忽略了。在这里,让我从ASP和PHP两个方面来说说如何设置吧。还会主要介绍一下Wordpress的404页面的自定义。而如何找到所要的404页面并定义呢,主要有2种途径:


1、自建页面
现在一般的主机都有自定义404页面的功能,那么,你只要在主机后台管理那设置这个页面的显示内容就可以了;对于自建的页面,如何指向,这里就不多赘述了,你可以参考以下的两篇文章:

ASP的或以参考这篇文章: 如果自定义404错误页面
PHP的可以参考这篇文章: 如何为网站设置自定义404错误页面

2、博客自带
比如Wordpress的模板里面通常会有一个404.php或者允许你建立一个这样的页面,来显示不存在的内容;在这里,我以Wordpress为例,说明如何实现。

1)你可以在theme的目录下,找到404.php或者相关错误页面的filename.php这样的文件,把<?php if (have_posts()) : while (have_posts()) : the_post(); ?>和<?php endwhile; endif; ?>之间的内容代换成你要显示的内容;

2)如果没有这样的页面的话,你可以新建一个新的php文件,命名为404.php,然后把page.php的内容复制进这个文件里面,把 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>和<?php endwhile; endif; ?>之间的内容代换成你要显示的内容;

而具体需要什么样的内容,或者说怎样实现更实用或好看的效果,就要看你的创意如何了。如果你还没有什么头绪的话,可以参考一下我的404错误页面:http://www.happinesz.cn/404.php,相信你也会喜欢上这样的页面的。

然而,404页面也并不一定要在本页显示。虽然,上面介绍的方法都是在读者来到的页面显示,但你还可以设置其他的功能,来实现有效阅读。事实上,你可以选择当页面错误或无效的时候,让页面自动跳转到主页或分类的归档页面等。具体的方法在此:自定义404错误页面实现自动跳转,作者已经给出了完整的代码。

好吧,基本上就是这样,简单吧。那么,建一个即使错误也是精彩的页面吧,或许你的读者会因此而喜欢上你的博客呢。如果,你有更精彩的方法或更有效果的方式,希望你也能分享出来给大家,让大家来共同探讨。

WordPress网站优化插件:Youpzt-optimizer

今天作者隆重推荐:WordPress网站优化插件:Youpzt-optimizer

很多用WordPress程序的站长朋友觉得现在wordpress越来越慢了!其实归其原因是有很多因素的:排除主机配置因素不谈。比如:1、谷歌被墙,谷歌字体长时间加载不下来;2、Gravatar头像加载缓慢,或加载失败;3、使用代码书写不规范或代码质量差的主题或者插件;4、加载了没有必要的文件或垃圾数据;5、WordPress程序版本检查更新等等这些因素都是影响着网站加载速度。

今天在这里为大家推荐一款国人插件,一款为wordpress提供多种系统开关和数据库垃圾数据清理的优化工具。

插件名称:youpzt-optimizer(网站优化工具);

最后在后台:点击插件,直接搜索即可。就有插件,直接安装即可。

全部都是中文调式方式

wordpress怎么做好安全防护的策略

WordPress起初是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持PHP和MySQL数据库的服务器上使用自己的Blog。

用wordpress搭建好博客以后需要做一些防护工作:

谨慎选择一款安全可靠的主机,不要使用免费主机和劣质主机。免费主机只适合用来学习程序和建站方法,但是Sins博主一直不建议使用免费主机来托管正式上线的网站。当然了,最好也不要使用那些特别廉价,管理经验不足的主机商的服务。

2.升级到WordPress最新版

只从WordPress官方下载源码,不要到第三方网站下载。尽可能升级到WordPress最新版,及时修补程序漏洞,包括WordPress核心源码、WordPress主题以及WordPress插件。

3.使用官方WordPress主题和插件

这里所说的官方,一是WordPress官方,二是主题或插件开发者的官方,尽量避免使用“破解”版主题、插件,慎用网上传播的原本是收费,但是被人恶意提供免费下载的主题、插件。

4.修改数据库默认前缀wp_

很多朋友安装WordPress都没有修改数据库前缀,如果你打算修改默认的前缀wp_,请根据如何修改WordPress数据库前缀来修改。

5.修改默认的用户名admin

WordPress3.*以上已经支持安装时自定义登录用户名,如果你使用默认的admin,建议你根据下面的方法进行修改:

方法一:后台新建一个用户,角色为管理员,然后使用新用户登录,删除默认的admin用户。

方法二:登录phpmyAdmin,浏览当前数据库的wp_users数据表,将user_login和user_nicename修改为新用户名。同时建议修改“我的个人资料”中的的昵称,然后设置“公开显示为”非用户名的其他方式:

6.使用高级密码,经常更换密码

建议使用含大写字母、小写字母、数字和其他符号的复杂密码,比如nuH4j&*aHG%dMz,避免使用生日、手机号、QQ号等。

7.隐藏WordPress版本信息

默认情况下会在头部输出WordPress版本信息,你可以在主题的functions.php最后一个?>前面添加:

functionwpbeginner_remove_version(){

add_filter(‘the_generator’,’wpbeginner_remove_version’);

8.修改wp-admin目录的访问权限

你可以通过限定IP地址访问WordPress管理员文件夹来进行保护,所有其他IP地址访问都返回禁止访问的信息。另外,你需要放一个新的.htaccess文件到wp-admin目录下,防止根目录下的.htaccess文件被替换。

可以借助WordPress备份插件进行自动备份或手动备份:WordPress数据库定时备份插件:WordPressDatabaseBacku

使用WordPress自带导出导入功能备份和恢复网站

WordPress克隆/备份/搬家插件:WPClone

WordPress超强备份插件:BackWPup(支持FTP/Email/本地/网盘)

WordPressFirewall2该插件可以帮助你识别/阻止一些有效的攻击,例如目录扫描、SQL注入、WP文件扫描、PHPEXE扫描等,并可将其定向到404或者首页。如果有问题还可以通过电子邮件通知你处理,还可以阻止一些IP的访问。

BetterWPSecurity由于大多数的WP网站存在插件漏洞、弱口令、过时的插件/程序,隐藏这些漏洞可以更好的保护网站,例如保护登录和管理区(控制面板?仪表盘?)。LoginLockdown这个插件可以记录失败的登录尝试的IP地址和时间,若是来自某一个IP地址的这种失败登录超过一定条件,那么系统将禁止这一IP地址继续尝试登录。

LimitLoginAttemptsLimitLoginAttempts限制登录尝试的次数来防止暴力破解,增强WordPress的安全系数。

WPSecurityScan该插件会自动按照以上的安全建议对WordPress进行安全扫描,查找存在的问题。

11.修改WordPress后台登录地址

将下面的代码添加到当前主题的functions.php文件:

add_action(‘login_enqueue_scripts’,’login_protection’);

functionlogin_protection(){

if($_GET[‘word’]!=’press’)header(‘Location:http://www.7758lm.com/’);

}这样一来,后台登录的唯一地址就是http://yoursite/wp-login.php?word=press,如果不是这个地址,就会自动跳转到http://www.7758lm.com/,不信你试试!你可以修改第4行的Word、press和http://www.7758lm.com/这三个参数。

12.避免WordPress泄露你的用户名

你有没有想过,如果你的网站的登陆名被别人知道了,偏偏他是一个比较精通WordPress的人,而且会写脚本暴力破解,那么后果就不堪设想。实际上,Wordpress这么一个漏洞,至今依然存在,并且常常会被黑客利用

想要知道WordPress的管理员用户名?很简单,只要在网站的域名后面加/?author=1就行了。

如果/?author=1显示404界面,那很可能是以前有过admin用户,后来站长发现用默认帐户admin太不安全了,就新建了一个管理员帐户,并删除了admin帐户。这种情况下,用/?author=2就能显示出用户名了。如果使用admin帐户,确实不安全,但是如果你的博客使用一个复杂的用户名,却经不起这么简单的一个URL的考验,这和使用admin帐户没有根本上的区别。既然存在漏洞,那么就要去填补它。要填补这个漏洞,倒还真的不是什么难事。我的思路就是,只要访问主页url后头有author参数就让他跳到主页

将下面的代码添加到当前主题的functions.php文件:

add_filter(‘author_link’,’my_author_link’);

functionmy_author_link(){

呵呵,大家有没有发现这个思路上面修改WordPress后台登录地址是一样的原理?

至此,有了以上的防护工作,你辛辛苦苦搭建的wp博客就不会没那么容易的被黑阔光顾

WordPress的管理员登录密码忘记了,2种方法!

方法一:也是最常用的方法,直接在登陆页点击忘记密码,输入管理员邮箱,系统会自动发送密码重置邮件,设置新密码即可!

方法二:进入到PhpMyAdmin的SQL执行命令页面,执行以下命令:

点击查看图片SQL命令

注:123456是你的新密码,7758lm是你的管理员账号。

网上还有其他一些方法,类似什么修改MD5的值,或者重置Wordpress密码的PHP文件这里都不推荐,因为MD5加密现在 WordPress 似乎已经不在使用,而上传文件是否安全也有待检验。

禁用:wordpress自动保存文章是否有好处?

有时候我们买的主机数据库不是很大,所以我们能少用一点就少用一点。
而且我们写一遍文章的时候可能你会修改很多次,也就是他会自动保存很多次,一遍文章也就算了长时间下来会有很多的沉余。
因此我们只要添加这个代码在代码中就可以让它去除那个功能。
//取消自动保存
function no_autosave() {
wp_deregister_script(‘autosave’);
}
add_action( ‘wp_print_scripts’, ‘no_autosave’ );
这就导致了发布文章的过程中,没有自动保存,所以没有办法预览文章的情况,当然了,随机而来的,还有一个问题,就是没办法及时修改这文章的固定链接,需要手动保存以后才可以修改。
从中也可以看出,WordPress需要将这些文章数据保存到数据库里面,才可以预览和修改。
如果你在使用主题的时候发现这个情况,你可以看看主题中是不是有这个代码删除就可以了。