为了保护wordpress数据的安全,对于展示型网站我们强烈建议将wordpress的接口文件wp-json禁用,以防止网站数据泄露。
WordPress网站一般会有开放的接口来获取网站元数据
参考:https://developer.wordpress.org/rest-api/reference/posts/
例如这个样例网站:https://www.wordpressx.com/
获取他们博客列表接口为:
https://www.wordpressx.com/wp-json/wp/v2/posts
一般读接口都是不保护的,你直接浏览器打开就能访问到。
我们一般抓取一个WordPress网站,只需要抓取他的posts、categories、tags即可。
WordPress 4.4 版本以后便具备了 REST API 功能,也就是通过 wp-json 的 URL 就可以访问,通过 REST API 生成的 JSON 接口,可以轻松的获取网站数据,便于做 APP 或者小程序的调用接口等,然而为了防止被其他人公开调用,可以增加权限判断和 IP 限制,当然老黑觉得也可以修改一下“wp-json”这个访问路径。
WP REST API 是 WordPress 的一个功能,为其提供对外标准的 RESTFul 接口,随着 RESTFul 的畅行和各种前端框架的出现,WP REST API 可以让 WordPress 不仅仅存在 Web 端,可以让 WordPress 不仅仅履行一个博客功能,而是可以让它作为后台终端(BackEnd),然后以各种应用的形式实现在各种各样的设备中。
其实修改非常简单,算是一行代码就可以搞定,因为 WordPress 本身就提供了一个 rest_url_prefix 的动作钩子,直接返回我们需要修改成最终的路径即可,代码如下:
// 自定义 WordPress wp-json 路径 add_filter( 'rest_url_prefix', function() { return 'wp-json'; });
直接将代码放置到当前主题 functions.php 文件中,然后记得在 WordPress 后台-设置-固定链接中点击一下保存,这样固定链接才会被 WordPress 刷新,代码才会完全生效,然后就可以直接访问了。
//禁用 REST API、移除 wp-json add_filter('rest_enabled', '_return_false'); add_filter('rest_jsonp_enabled', '_return_false'); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
当然也可以通过以上四行代码禁止 WP REST API,从而彻底关闭 WordPress 的 json 数据,如果你的 WordPress 没有使用,那么老黑建议禁止关闭该功能是很有必要的。