如何安全移除 WordPress Feed 中的惡意網址 wellformedweb.org/CommentAPI
最近有位朋友 im2828 提醒我們,WordPress 的一個舊網址 http://wellformedweb.org/CommentAPI 因為過期而被惡意搶注,現在這個網址可能會跳轉到一些不雅的網站。這可不是小事,某些伺服器商已經開始通知用戶進行處理了,真是感謝 im2828 的提醒!
這個網址到底是幹嘛的?
wellformedweb.org/CommentAPI 原本是用來標準化 WordPress 等博客系統的評論接口,早期 WordPress 就在 Feed 中硬編碼了這個鏈接,直到現在還在使用。但隨著時間的推移,這個域名的持有者不再續費,結果就被一些從事非法業務的公司買下了。現在的 wellformedweb.org 可能會導向賭博、色情等不法內容,這可得小心了。
如何檢查你的网站是否有這個問題?
檢查的方法非常簡單,只要在你的網站域名後面加上 /feed,例如 https://www.wpdaxue.com/feed。如果你看到包含 xmlns:wfw 的行,那麼恭喜你,你的網站可能有這個遺留問題。
怎麼正確移除 wellformedweb.org/CommentAPI 的輸出?
其實,這個網址並不會顯性地顯示在頁面上,普通使用者一般不會直接訪問到它。唯一能看到的地方就是在 Feed 的代碼中。雖然不確定爬蟲是否會識別這個網址為惡意網址,但為了安全起見,還是建議將其移除。
方法一:安裝外掛或添加代碼(最佳方案)
最簡單的方法是安裝一個外掛,名為 Remove WFW CommentAPI Link。只需在後台的外掛安裝界面上傳並啟用即可。
如果你不想安裝外掛,還可以將以下代碼添加到你當前啟用的主題的 functions.php 文件中:
/**
* Plugin Name: Remove WFW CommentAPI Link
* Plugin URI: https://www.wpdaxue.com/remove-wfw-commentapi-link.html
* Start output buffering on feed requests.
*/
function rwcl_feed_ob_start() {
if ( ! is_feed() ) {
return;
}
ob_start( 'rwcl_feed_ob_callback' );
}
add_action( 'template_redirect', 'rwcl_feed_ob_start', 0 );
/**
* Output buffer callback: strip wfw-related content from the feed.
*
* @param string $output The buffered feed output.
* @return string Modified feed output.
*/
function rwcl_feed_ob_callback( $output ) {
$output = preg_replace( '/\n\t*xmlns:wfw="http:\/\/wellformedweb\.org\/CommentAPI\//', '', $output );
$output = preg_replace( '/<wfw:commentRss>.*?<\/wfw:commentRss>\s*/s', '', $output );
return $output;
}
方法二:直接修改源代碼(不推薦)
雖然可以直接修改 wp-includes/feed-rss2.php 來移除相關代碼,但這樣做不太建議,因為每次更新 WordPress 都需要重新修改。
無效的方法
有些教程提到的代碼實際上是無效的,因為根本沒有對應的 filter 鉤子可以過濾,實測無效!
總結
以上就是從 Feed 輸出中移除 wellformedweb.org/CommentAPI 的解決方案。至於這個過時網址何時會從 WordPress 源碼中移除,我們就不得而知了。如果你的主機商要求你直接刪除源碼中的相關代碼,可以查看以下兩個文件:
wp-includes/feed-rss2.php大約在第 22 行wp-admin/includes/export.php大約在第 524 行
記得保持網站安全,定期檢查,讓我們一起抵擋這些惡意網址的侵擾!






0 Comments