倡萌最近發(fā)現(xiàn)一個客戶的網(wǎng)站被別人進行了惡意搜索攻擊,導致他的網(wǎng)站域名下被收錄了很多不良信息數(shù)據(jù),如下圖所示:

什么是惡意搜索攻擊?
這種惡意搜索攻擊,其實非常簡單,就是通過既定的網(wǎng)址結(jié)構(gòu)不斷對網(wǎng)站發(fā)起不良關(guān)鍵詞搜索訪問,比如WordPress的搜索網(wǎng)址結(jié)構(gòu)為 域名/?s=搜索詞,而且可能還會順便將訪問的地址推送到各大搜索引擎,加快這些惡意網(wǎng)址的收錄。這樣,你的網(wǎng)站就會淪為這些不法之徒傳播不良信息的渠道,這對網(wǎng)站排名是非常不利的,甚至可能會直接被搜索引擎K站。
如果網(wǎng)站管理員沒有定期檢查網(wǎng)站的情況,很可能就會遭殃。
怎么處理惡意搜索攻擊?
要處理這種惡意搜索攻擊,同時還要確保WordPress網(wǎng)站搜索功能的正常使用。操作起來思路是比較明確的,不過步驟和時間可能有些多。
第1步:屏蔽惡意搜索
要屏蔽惡意搜索,首先我們需要監(jiān)控到對方使用什么惡意搜索詞,所以我們先安裝 Search Analytics 插件,在 儀表盤 – 搜索分析 頁面,我們就可以看到搜索詞:

知道了搜索詞以后,我們就需要做屏蔽。下載并安裝倡萌開發(fā)的 WPKJ Block Search Words 插件,啟用以后,就可以在 設置-閱讀 界面,看到【搜索關(guān)鍵詞屏蔽】,根據(jù)上面的搜索數(shù)據(jù)提取惡意關(guān)鍵詞,然后填進去,保存:
插件采用的是部分匹配機制,填入【微信】,所有包含【微信】的搜索詞都會攔截。

然后我們在網(wǎng)站搜索包含已填寫的屏蔽詞,就會返回如下錯誤界面,并且這個界面返回的狀態(tài)碼是 404,這樣一來,搜索引擎也不會去收錄了:

WPKJ Block Search Words 插件已經(jīng)兼容 Search Analytics 插件,只要搜索內(nèi)容包含有屏蔽詞,就不會在 Search Analytics 的搜索分析中記錄,這樣一來,你可以很方便地知道,哪些詞已經(jīng)被屏蔽,繼續(xù)觀察一段時間,發(fā)現(xiàn)有新的詞,就提取填入【搜索關(guān)鍵詞屏蔽】。
第2步:禁止搜索引擎收錄搜索結(jié)果頁
搜索結(jié)果頁一般我們都不推薦被收錄,所以建議大家還是禁止收錄。
現(xiàn)在幾乎所有搜索引擎都遵循robots.txt的規(guī)則,也就是我們可以通過 robots.txt 定義規(guī)則,阻止搜索引擎收錄搜索結(jié)果頁面。我們可以在網(wǎng)站根目錄,創(chuàng)建一個robots.txt 文件,填入下面的內(nèi)容:
User-agent: *
Disallow: /index.php
Disallow: /index.html
Disallow: /wp-admin/
Disallow: /*/feed
Disallow: /trackback/
Disallow: /*?replytocom=*
Disallow: /*/comment-page*
Disallow: /?s=*
Disallow: /search/
上面內(nèi)容的倒數(shù)第1、2條規(guī)則,就是禁止收錄搜索結(jié)果頁。
更多robots.txt的介紹,請看:為你的 WordPress 站點添加 robots.txt
第3步:向百度提交死鏈
禁止收錄搜索結(jié)果頁面的規(guī)則已經(jīng)添加,但是搜索引擎不會馬上做出回應的,之前收錄的惡意鏈接,也不會那么快去掉。這時候,我們可以通過百度的死鏈提交功能,讓搜索引擎快點去掉已收錄的惡意網(wǎng)址。
首先,我們需要收集惡意網(wǎng)址,訪問百度搜索首頁,通過 關(guān)鍵詞 site:www.你的域名.com 進行搜索,比如 微信 site:www.abc.com 就可以得到你網(wǎng)站下關(guān)于這個關(guān)鍵詞的結(jié)果:

創(chuàng)建一個名為 silian.txt 的文件,然后訪問上面的惡意網(wǎng)址,將網(wǎng)址復制到 silian.txt 中,每行一個:

我們可以搜索前面收集到的惡意關(guān)鍵詞,盡可能將所有收錄數(shù)據(jù)收集。
然后將這個 silian.txt 文件上傳到網(wǎng)站根目錄,然后訪問 百度搜索資源平臺 ,在站點管理中,提交死鏈網(wǎng)址:

注:如果你的網(wǎng)站還沒有提交到百度資源平臺,可以先看教程《WordPress SEO:提交網(wǎng)站到百度搜索資源平臺》提交好網(wǎng)站再進行死鏈提交操作。
2021年8月29日更新:Google搜索引擎需要做額外的處理,詳情請閱讀 Google Search Console 警告“已編入索引,盡管遭到 robots.txt 屏蔽” 的處理方案
好了,今天的教程就到這里。建站不易,建議大家每隔一段時間就檢查下網(wǎng)站的健康情況,盡早發(fā)現(xiàn)和處理問題。





有沒有好用的關(guān)鍵詞推薦
任何惡意的內(nèi)容都會包含聯(lián)系方式,也就是會用到數(shù)字,比如 1一壹① 等各種數(shù)字類型都屏蔽掉,那就差不多了
去年中過招,谷歌站長里突然多了大幾百頁的收錄,就是這種搜索頁,后來通通加了noindex
更好的解決辦法是現(xiàn)在搜索字符數(shù),大多的搜索都是只有4到10個字符,而這些廣告都需要很長,如果能夠屏蔽禁止搜索太長的關(guān)鍵詞,可以杜絕大多非法搜索關(guān)鍵字
屏蔽數(shù)字基本就完勝,因為他們免不了要留微信號,而用戶基本不會搜索數(shù)字
比如我搜索個“404”可咋整?限制10個中文字我覺得還行!
要根據(jù)網(wǎng)站內(nèi)容類型來選擇,比如我的網(wǎng)站就不屏蔽0、5、4、3等可能會搜索的數(shù)字
我試了一下,沒卵用。用了你的插件,搜屏蔽關(guān)鍵詞的結(jié)果是404錯誤,用了長度限制的搜索規(guī)則,結(jié)果是500錯誤,反正兩者都需要消耗服務器200-300ms,目前正在尋找更好的屏蔽方法。
就是故意設置了返回404錯誤碼的,因為我們后面需要收集提交已被百度收錄的惡意搜索結(jié)果,百度要求必須是404狀態(tài)碼才會刪除已收錄的這些頁面信息。
如果你有更好的辦法,歡迎分享
主要是無論404還是500錯誤,都要消耗服務器100-200ms,所以目前我選擇在cdn處設置URL匹配。這樣有兩種方案:一,將/?s=*列入人機識別,但是嚴重影響搜索體驗;二,將/?s=及部分關(guān)鍵詞匹配直接攔截、拉黑,但是該方法部分服務商沒有,部分需要付費套餐。
我當初一個網(wǎng)站也被人刷外鏈搜索,后來就都屏蔽搜索頁收錄了。
嗯,一般都推薦屏蔽搜索頁收錄。不過像我客戶必須保留搜索功能,而且還要統(tǒng)計搜索詞,弄個熱搜,所以還是折騰了屏蔽的措施。還真的挺好用,這些攻擊關(guān)鍵詞也就哪些,提取了20個左右就OK了