提高 WordPress 安全性,移除页面头部版本和服务发现代码
WordPress 会在页面的头部输出版权信息和其他服务发现代码,版权信息代码会让用户知道你的目前运行的 WordPress 的版本,而服务发现代码则可以说明你的博客支持哪些服务。
版本号
WordPress 会在页面头部显示你的 WordPress 版本号:
<meta name="generator" content="WordPress 3.5.1" />
作为博主的你,当然知道自己所使用的 WordPress 版本了,但是使用的 WordPress 版本直接暴露在外面,反而是一个安全隐患,万一你的 WordPress 一时没有升级,而这个版本刚好有安全问题,然后又给坏人知道了,那就造成安全问题,所以最好不要暴露在页面:
remove_action('wp_head', 'wp_generator');
RSD
Really Simple Discovery(RSD)是XML格式的一种发布约定,用于使 WordPress 可以被客户端软件发现,这是一种将客户端软件所需的信息减少到三个众所周知的元素的方法:用户名,密码和主页URL,其他关键设置都在 RSD 文件中定义。它会在页面头部输出代码如下:
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" />
简单说 XML-RPC 客户端发现机制需要用到,一般建议在使用 XML-RPC 客户端时候开启即可,其他时候建议关闭,省的被人使用 XML-RPC 客户端来尝试登录。
remove_action('wp_head', 'rsd_link');
wlwmanifest
wlwmanifest 是用来说明支持 Windows Live Writer ,它会在页面头部输出代码如下:
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" />
如果你没有使用 Windows Live Writer 来写文章,那就移除它吧:
remove_action('wp_head', 'wlwmanifest_link');
ShortLink
这个原本的意图是如果你的文章的固定链接很长,告诉用户可以通过 http://example.com/?p=13150
这个的短链接的方式快速访问。它会在文章详情页的页面头部输出代码如下:
<link rel='shortlink' href='http://example.com/?p=13150' />
但是这个可能暴露文章的 ID,而你不想让人知道的话,那就最好移除它:
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
REST
它会在文章详情页的页面头部输出代码如下:
<link rel="https://api.w.org/" href="https://blog.wpjam.com/wp-json/" />
这个代码是用来告诉 APP 开发者,当前站点的 REST API 的地址,这个口头告诉一下就行了,没有必要在代码中输出:
remove_action('wp_head', 'rest_output_link_wp_head', 10);
汇总
汇总一次,将上面所有代码都复制到主题的 functions.php 就能一次性移除了:
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action('wp_head', 'rest_output_link_wp_head', 10);
该功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,简单勾选或者设置下即可开启!