為了保護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)準的 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)閉該功能是很有必要的。
xmlrpc.php?存在于 WordPress 網(wǎng)站程序中,通過使用 HTTP 作為傳輸機制和 XML 作為編碼機制來標(biāo)準化這些通信來實現(xiàn)此目的。然而,xmlrpc.php 文件引入了安全漏洞,并且可能成為被攻擊的目標(biāo)。
最近網(wǎng)站大量 POST 請求 xmlrpc.php,導(dǎo)致 CPU 負載爆滿,內(nèi)存也比平時占用更多,感覺是被人掃描攻擊了。所以這個涉及到了?WordPress 安全,必須重視起來。
XML-RPC?是支持 WordPress 與其他系統(tǒng)之間通信的規(guī)范。XML-RPC 不僅用于移動應(yīng)用程序:它還用于允許 WordPress 和其他博客平臺之間進行通信,還支持引用和?pingback。但是由于?REST API?已集成到 WordPress 核心中,因此 xmlrpc.php 文件不再用于此通信。
如果您的站點上啟用了 XML-RPC,則黑客可能會利用 xmlrpc.php 在短時間內(nèi)向您的站點發(fā)送大量 pingback,從而在您的站點上發(fā)起 DDoS 攻擊。這可能會使服務(wù)器超載,并使站點無法正常運行。而每次 xmlrpc.php 發(fā)出請求時,它都會發(fā)送用戶名和密碼進行身份驗證,所以,黑客可以使用它來嘗試爆破您的站點。
在此基礎(chǔ)上,我們 還發(fā)現(xiàn)了攻擊//xmlrpc.php
地址,來耗盡 WordPress 站點的服務(wù)器資源,所以更加推薦最后一種方法。
因此,您現(xiàn)在應(yīng)該在站點上禁用 xmlrpc.php,但是很多人不知道該如何停用 xmlrpc.php 文件,雖然將其刪除是最簡單的方法,但是由于 WordPress 經(jīng)常升級,又會重新生成該文件,所以在此基礎(chǔ)上,WPEXP 跟大家分享五個禁用 xmlrpc.php 的方法,供大家選擇使用。
在當(dāng)前主題的?functions.php?文件添加下面這行代碼就能關(guān)閉 xmlrpc.php
復(fù)制
//通過 functions.php 函數(shù)文件禁用 xmlrpc.php
add_filter('xmlrpc_enabled', '__return_false');
在 WordPress 根目錄編輯?wp-config.php?文件,最開始的地方添加:
復(fù)制
if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
Nginx 規(guī)則
復(fù)制
location ~* ^/xmlrpc.php$ {
return 403;
}
Apache 規(guī)則
在 .htaccess 文件前面添加以下代碼。
復(fù)制
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
這個的前提要求需要保護好自己的服務(wù)器 IP 不被發(fā)現(xiàn),在此基礎(chǔ)上可以在云防火墻或者 CDN 中寫好阻止 xmlrpc.php 訪問,比上述所有配置都要進一步降低服務(wù)器性能的消耗,因為它還沒有請求你服務(wù)器就被攔截了。
這里以 CloudFlare WAF 防火墻為例,在添加/xmlrpc.php
基礎(chǔ)上,再添加一個//xmlrpc.php
以防萬一。怕大家看不懂,這里使用 URI 完整,小伙伴們可以考慮使用 URI 包含規(guī)則,填寫一個/xmlrpc.php
?即可。
退而求其次,如果你有使用寶塔的 Nginx 防火墻,那么也可以使用防火墻來阻止 xmlrpc.php 訪問。但是這個畢竟還是會涉及服務(wù)器資源的占用,在能夠做好 IP 不泄露的情況下,使用云端防火墻或 CDN 去阻止是最好的!
1 WordPress錯誤怎么辦?
當(dāng)WordPress網(wǎng)站出現(xiàn)一些致命錯誤問題,找不到原因時,必須禁用所有插件,然后逐個啟用,以便觀察是WordPress主題,或是哪些WordPress插件造成沖突。
但是,禁用所有WordPress插件,絕對會影響在網(wǎng)站前臺瀏覽的訪問者。
兩全其美的調(diào)試WordPress錯誤的方法,可能是你所需要的。
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96572”,{“target”:”div-ad-innity-96572/0″,”origin”:”MY”});});
WordPress致命錯誤怎么解決?
WordPress網(wǎng)站搬家后,首頁前臺空白打開后臺也空白,怎么辦?
建議開啟“WordPress調(diào)試模式”,對WordPress進行故障排除。
如何開啟WordPress調(diào)試模式?
define('WP_DEBUG', false);
”,修改為“define('WP_DEBUG', true);
”/** * 開發(fā)者專用:WordPress調(diào)試模式 * * 將這個值改為true,WordPress將顯示所有用于開發(fā)的提示 * 強烈建議插件開發(fā)者在開發(fā)環(huán)境中啟用WP_DEBUG * * 要獲取其他能用于調(diào)試的信息,請訪問Codex * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', true); //define('WP_DEBUG', false);
define('WP_DEBUG', false);
” 修改回“define('WP_DEBUG', false);
”。刷新出錯網(wǎng)頁后,就會顯示類似以下造成WordPress錯誤的插件提示信息 ▼
innity_adZoneAsync.q.push(function(){innity_adZoneAsync.display(“ee389847678a3a9d1ce9e4ca69200d06″,”96574”,{“target”:”div-ad-innity-96574/0″,”origin”:”MY”});});
Strict Standards: Redefining already defined constructor for class PluginCentral in /home/eloha/public_html/etufo.org/wp-content/plugins/plugin-central/plugin-central.class.php
on line 13
在啟用Health Check & Troubleshooting插件調(diào)試錯誤之前,一定要先做好網(wǎng)站備份,否則一旦出現(xiàn)嚴重錯誤,難以恢復(fù)數(shù)據(jù)。
對于啟用了“健康檢查與故障排除
”插件的“故障排除模式”功能的站長,網(wǎng)站所有插件將被禁用并切換到默認主題,但其他網(wǎng)站的訪問者將照常查看該網(wǎng)站。
第 1?步:安裝Health Check & Troubleshooting
插件
Health Check & Troubleshooting
”或下載后上傳。第 2 步:啟用“故障排除”模式?▼
WordPress網(wǎng)站啟用故障排除模式后,你的WordPress后臺將自動切換回WordPress 默認主題,所有WordPress 插件也會停止使用。
別緊張,如果你用其他瀏覽器作為訪問者瀏覽網(wǎng)站,是可以如常訪問的。
所以這時候你可以放心找出問題慢慢解決。
但是,如果你的網(wǎng)站以這種方式呈現(xiàn)出兩種狀態(tài),可能會過度消耗主機資源,所以一般選擇在很少的時候做比較好訪客。
(如果網(wǎng)站流量不高,就會覺得不是特別耗主機性能)
第 3 步:復(fù)制站點信息到剪貼板
WordPress后臺 → 工具 → 站點健康 → 信息 → 復(fù)制站點信息到剪貼板
第 4 步:將剛才復(fù)制的站點信息,粘貼到記事本。
第 5 步:搜索“wp-plugins-active
”,即可記錄和查看已啟用的WordPress插件。
在WordPress頂部導(dǎo)航這里, 可以先設(shè)置主題啟用?▼
wp-plugins-active
”列表,可根據(jù)字母開頭逐個啟用WordPress插件,比如先從A字母開頭小范圍地啟用WordPress插件。假如想要在故障排除模式中啟用WordPres插件,點擊“故障排除已啟用 ” ▼
▲?此WordPress版本的中文翻譯不完善,圖中的這個“故障排除已啟用”應(yīng)該是“在故障排除模式中啟用”才對。
Health Check & Troubleshooting(健康檢查和故障排除)
插件會自動停用,所以一定要先啟用此插件,否則在查看“站點健康”頁面時,會出現(xiàn)錯誤提示“抱歉,你不能訪問此頁面”。“Health Check & Troubleshooting
”插件提供了網(wǎng)站“狀態(tài)”、“信息”、“故障排除”和“工具”等數(shù)據(jù),讓你了解當(dāng)前網(wǎng)站的健康狀況 ▼
Health Check & Troubleshooting
是一個非常必要的WordPress插件。
希望我們( https://www.wordpressx.com/ ) 分享的《WordPress錯誤怎么辦?Health Check & Troubleshooting插件排查》,對您有幫助。
1 WordPress的curl是什么?
WordPress性能錯誤:REST API請求因遇到了錯誤而失敗。
還有,WordPress插件Sitemap XML網(wǎng)站地圖,也出現(xiàn)錯誤提示:
<b>Fatal error</b>: Unknown: Cannot use output buffering in output buffering display handlers in <b>Unknown</b> on line <b>0</b><br />
未能及時響應(yīng)服務(wù)器的數(shù)據(jù)請求會導(dǎo)致WordPress出現(xiàn)“cURL error 28”錯誤。
WordPress 使用 REST API(一種編程技術(shù))來發(fā)送和接收數(shù)據(jù)請求。
如果這些請求超時,你將在“站點運行狀況”報告中出現(xiàn)標(biāo)題為“REST API 遇到錯誤”的關(guān)鍵問題。
如果展開問題可以查看更詳細的信息,包括錯誤信息:
REST API請求因遇到了錯誤而失敗。
錯誤:[] cURL error 28: Operation timed out after 10000 milliseconds with 0 out of -1 bytes received
你可能還會看到另一個相關(guān)問題,標(biāo)題為“你的站點不能完成環(huán)回請求”。 它將顯示如下所述的類似錯誤消息 ▼
環(huán)回請求被用來運行計劃事件,也被內(nèi)建的主題及插件編輯器使用來確保代碼穩(wěn)定性。
到你站點的環(huán)回請求失敗,這意味著依賴此種請求的功能將不能正常工作。
出現(xiàn)錯誤: cURL error 28: Operation timed out after 10001 milliseconds with
許多情況都會導(dǎo)致 cURL 在 WordPress 中超時:
既然我們一般都知道curl錯誤的原因,那么解決“curl錯誤28:連接超時”應(yīng)該不難 “ 問題。
WordPress致命錯誤怎么解決?
WordPress網(wǎng)站搬家后,首頁前臺空白打開后臺也空白,怎么辦?
建議開啟“WordPress調(diào)試模式”,對WordPress進行故障排除。
如何開啟WordPress調(diào)試模式?
define('WP_DEBUG', false);
”,修改為“define('WP_DEBUG', true);
”/** * 開發(fā)者專用:WordPress調(diào)試模式 * * 將這個值改為true,WordPress將顯示所有用于開發(fā)的提示 * 強烈建議插件開發(fā)者在開發(fā)環(huán)境中啟用WP_DEBUG * * 要獲取其他能用于調(diào)試的信息,請訪問Codex * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', true); //define('WP_DEBUG', false);
define('WP_DEBUG', false);
” 修改回“define('WP_DEBUG', false);
”。刷新出錯網(wǎng)頁后,就會顯示類似以下造成WordPress錯誤的插件提示信息 ▼
Strict Standards: Redefining already defined constructor for class PluginCentral in /home/eloha/public_html/etufo.org/wp-content/plugins/plugin-central/plugin-central.class.php
on line 13
推薦使用Health Check & Troubleshooting插件排查,點擊下方鏈接查看具體方法▼
WordPress錯誤怎么辦?Health Check & Troubleshooting插件排查
當(dāng)WordPress網(wǎng)站出現(xiàn)一些致命錯誤問題,找不到原因時,必須禁用所有插件,然后逐個啟用,以便觀察是WordPress主題,或是哪些WordPress插件造成沖突。但是,禁用所有WordPress插件,絕對會影……
我們網(wǎng)站在啟用Health Check & Troubleshooting
插件的“故障排除模式”后,測試改用“二〇二一”主題,就沒顯示“REST API遇到了錯誤”問題。
Health Check & Troubleshooting
插件的“故障排除模式”中,改回之前用的WordPress主題就出現(xiàn)錯誤。如果上述步驟無法解決WordPress站點上的cURL錯誤28,則問題很可能是服務(wù)器環(huán)境問題。
希望我們網(wǎng)站( https://www.wordpressx.com/ ) 分享的《WordPress出現(xiàn)REST API請求錯誤cURL error 28如何解決》,對您有幫助。
1 WordPress錯誤怎么辦?
當(dāng)WordPress網(wǎng)站出現(xiàn)一些致命錯誤問題,找不到原因時,必須禁用所有插件,然后逐個啟用,以便觀察是WordPress主題,或是哪些WordPress插件造成沖突。
但是,禁用所有WordPress插件,絕對會影響在網(wǎng)站前臺瀏覽的訪問者。
兩全其美的調(diào)試WordPress錯誤的方法,可能是你所需要的。
WordPress致命錯誤怎么解決?
WordPress網(wǎng)站搬家后,首頁前臺空白打開后臺也空白,怎么辦?
建議開啟“WordPress調(diào)試模式”,對WordPress進行故障排除。
如何開啟WordPress調(diào)試模式?
define('WP_DEBUG', false);
”,修改為“define('WP_DEBUG', true);
”/** * 開發(fā)者專用:WordPress調(diào)試模式 * * 將這個值改為true,WordPress將顯示所有用于開發(fā)的提示 * 強烈建議插件開發(fā)者在開發(fā)環(huán)境中啟用WP_DEBUG * * 要獲取其他能用于調(diào)試的信息,請訪問Codex * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', true); //define('WP_DEBUG', false);
define('WP_DEBUG', false);
” 修改回“define('WP_DEBUG', false);
”。刷新出錯網(wǎng)頁后,就會顯示類似以下造成WordPress錯誤的插件提示信息 ▼
Strict Standards: Redefining already defined constructor for class PluginCentral in /home/eloha/public_html/etufo.org/wp-content/plugins/plugin-central/plugin-central.class.php
on line 13
在啟用Health Check & Troubleshooting插件調(diào)試錯誤之前,一定要先做好網(wǎng)站備份,否則一旦出現(xiàn)嚴重錯誤,難以恢復(fù)數(shù)據(jù)。
對于啟用了“健康檢查與故障排除
”插件的“故障排除模式”功能的站長,網(wǎng)站所有插件將被禁用并切換到默認主題,但其他網(wǎng)站的訪問者將照常查看該網(wǎng)站。
第 1?步:安裝Health Check & Troubleshooting
插件
Health Check & Troubleshooting
”或下載后上傳。第 2 步:啟用“故障排除”模式?▼
WordPress網(wǎng)站啟用故障排除模式后,你的WordPress后臺將自動切換回WordPress 默認主題,所有WordPress 插件也會停止使用。
別緊張,如果你用其他瀏覽器作為訪問者瀏覽網(wǎng)站,是可以如常訪問的。
所以這時候你可以放心找出問題慢慢解決。
但是,如果你的網(wǎng)站以這種方式呈現(xiàn)出兩種狀態(tài),可能會過度消耗主機資源,所以一般選擇在很少的時候做比較好訪客。
(如果網(wǎng)站流量不高,就會覺得不是特別耗主機性能)
第 3 步:復(fù)制站點信息到剪貼板
WordPress后臺 → 工具 → 站點健康 → 信息 → 復(fù)制站點信息到剪貼板
第 4 步:將剛才復(fù)制的站點信息,粘貼到記事本。
第 5 步:搜索“wp-plugins-active
”,即可記錄和查看已啟用的WordPress插件。
在WordPress頂部導(dǎo)航這里, 可以先設(shè)置主題啟用?▼
wp-plugins-active
”列表,可根據(jù)字母開頭逐個啟用WordPress插件,比如先從A字母開頭小范圍地啟用WordPress插件。假如想要在故障排除模式中啟用WordPres插件,點擊“故障排除已啟用 ” ▼
▲?此WordPress版本的中文翻譯不完善,圖中的這個“故障排除已啟用”應(yīng)該是“在故障排除模式中啟用”才對。
Health Check & Troubleshooting(健康檢查和故障排除)
插件會自動停用,所以一定要先啟用此插件,否則在查看“站點健康”頁面時,會出現(xiàn)錯誤提示“抱歉,你不能訪問此頁面”。“Health Check & Troubleshooting
”插件提供了網(wǎng)站“狀態(tài)”、“信息”、“故障排除”和“工具”等數(shù)據(jù),讓你了解當(dāng)前網(wǎng)站的健康狀況 ▼
Health Check & Troubleshooting
是一個非常必要的WordPress插件。
希望我們網(wǎng)站( https://www.wordpressx.com/ ) 分享的《WordPress錯誤怎么辦?Health Check & Troubleshooting插件排查》,對您有幫助。
1 如何解決Fatal error: Unknown: Cannot use output buffering in output buffering display?
解決WordPress致命錯誤:未知:無法在第 0 行未知的輸出緩沖顯示
最近有網(wǎng)友嘗試通過WordPress儀表板自定義網(wǎng)站的外觀時,都會出現(xiàn)以下錯誤消息提示?▼
“Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0”
而且有一段時間沒有添加任何新的WordPress插件了,但是不知道該怎么辦?
很多學(xué)習(xí)WordPress建站的新手都不知道如何調(diào)試WordPress錯誤問題……
WordPress致命錯誤怎么解決?
WordPress網(wǎng)站搬家后,首頁前臺空白打開后臺也空白,怎么辦?
建議開啟“WordPress調(diào)試模式”,對WordPress進行故障排除。
define('WP_DEBUG',?false);
?”,修改為“define('WP_DEBUG',?true);
?”/** * 開發(fā)者專用:WordPress調(diào)試模式 * * 將這個值改為true,WordPress將顯示所有用于開發(fā)的提示 * 強烈建議插件開發(fā)者在開發(fā)環(huán)境中啟用WP_DEBUG * * 要獲取其他能用于調(diào)試的信息,請訪問Codex * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', true); //define('WP_DEBUG', false);
define('WP_DEBUG', false);?
” 修改回“define('WP_DEBUG', false);
?”。刷新出錯網(wǎng)頁后,就會顯示類似以下造成WordPress錯誤的插件提示信息 ▼
Strict Standards: Redefining already defined constructor for class PluginCentral in /home/eloha/public_html/etufo.org/wp-content/plugins/plugin-central/plugin-central.class.php
on line 13
推薦使用Health Check & Troubleshooting插件排查,點擊下方鏈接查看具體方法▼
WordPress錯誤怎么辦?Health Check & Troubleshooting插件排查
當(dāng)WordPress網(wǎng)站出現(xiàn)一些致命錯誤問題,找不到原因時,必須禁用所有插件,然后逐個啟用,以便觀察是WordPress主題,或是哪些WordPress插件造成沖突。但是,禁用所有WordPress插件,絕對會影……
我們發(fā)現(xiàn) 6 個WordPress插件,可能會造成WordPress致命錯誤:
希望我們網(wǎng)站( https://www.wordpressx.com/ ) 分享的《解決WordPress Fatal error: Unknown: Cannot use output buffering in output buffering display》,對您有幫助。