為了保護wordpress數(shù)據(jù)的安全,對于展示型網(wǎng)站我們強烈建議將wordpress的接口文件wp-json禁用,以防止網(wǎng)站數(shù)據(jù)泄露。
WordPress網(wǎng)站一般會有開放的接口來獲取網(wǎng)站元數(shù)據(jù)
參考:https://developer.wordpress.org/rest-api/reference/posts/
例如這個樣例網(wǎng)站:http://news.qtyiliao.cn/
獲取他們博客列表接口為:
http://news.qtyiliao.cn/wp-json/wp/v2/posts
一般讀接口都是不保護的,你直接瀏覽器打開就能訪問到。
我們一般抓取一個WordPress網(wǎng)站,只需要抓取他的posts、categories、tags即可。
WordPress 4.4 版本以后便具備了 REST API 功能,也就是通過 wp-json 的 URL 就可以訪問,通過 REST API 生成的 JSON 接口,可以輕松的獲取網(wǎng)站數(shù)據(jù),便于做 APP 或者小程序的調(diào)用接口等,然而為了防止被其他人公開調(diào)用,可以增加權(quán)限判斷和 IP 限制,當(dāng)然老黑覺得也可以修改一下“wp-json”這個訪問路徑。
WP REST API 是 WordPress 的一個功能,為其提供對外標(biāo)準(zhǔn)的 RESTFul 接口,隨著 RESTFul 的暢行和各種前端框架的出現(xiàn),WP REST API 可以讓 WordPress 不僅僅存在 Web 端,可以讓 WordPress 不僅僅履行一個博客功能,而是可以讓它作為后臺終端(BackEnd),然后以各種應(yīng)用的形式實現(xiàn)在各種各樣的設(shè)備中。
其實修改非常簡單,算是一行代碼就可以搞定,因為 WordPress 本身就提供了一個 rest_url_prefix 的動作鉤子,直接返回我們需要修改成最終的路徑即可,代碼如下:
// 自定義 WordPress wp-json 路徑 add_filter( 'rest_url_prefix', function() { return 'wp-json'; });
直接將代碼放置到當(dāng)前主題 functions.php 文件中,然后記得在 WordPress 后臺-設(shè)置-固定鏈接中點擊一下保存,這樣固定鏈接才會被 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 );
當(dāng)然也可以通過以上四行代碼禁止 WP REST API,從而徹底關(guān)閉 WordPress 的 json 數(shù)據(jù),如果你的 WordPress 沒有使用,那么老黑建議禁止關(guān)閉該功能是很有必要的。