2018/09/04

防止搜尋引擎顯示敏感資訊

Google 搜尋引擎提供了強大的功能,讓使用者可以快速的找到需要的資料。所有事物都有雙面刃的特性,也因此有人使用他來做惡意行為,像是搜尋個人隱私資訊、帳號密碼、網站架構、特定檔案等。

圖一:透過關鍵字和「filetype」搜尋到的聯絡人資訊




圖二:Google 也可找到一些可下載的檔案


早在 10 年前,我就使用這些搜尋技巧在網路上搜尋可用的電子書以及其他資料,只是已意外的到現在還有這麼多網站有安全問題。



透過 robots.txt 告知搜尋引擎不要建立索引


搜尋引擎除了造訪各個網頁,並儲存網頁內容以外,會先參考網站根目錄的「robots.txt」檔案,此檔案主要目的是告訴搜尋引擎哪一些路徑不應該被建立索引、不該被搜尋:

通常會設定為:
User-agent: *
Allow: /
Disallow: /upload/
Disallow: /download/
Disallow: /file/

但要注意:並不是所有搜尋引擎都會按照你預期的方式處理。

同樣的,由於雙面刃的特性,當惡意使用者發現 robots.txt 中有「Disallow」的項目,就可以猜得到這些目錄有敏感資料,進而特別去分析這些目錄的用途。


目錄加上 HTTP basic auth


這個作法很簡單,搜尋引擎造訪網頁時沒有帳號、密碼,無法讀取資料,也就沒辦法對網頁內容建立索引供使用者搜尋。



透過防火牆阻擋擋搜尋引擎


若有注意的話,你可以在 HTTP server log 中看到 user agent 的資訊,例如:
 .... Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

順著 user agent 的提示,你應該會發現多數的搜尋引擎 bot 都會有關鍵字,且有些搜尋引擎服務甚至會告知 bot 所使用的 IP。透過這些設定,設定防火牆或其存取規則,來阻擋搜尋引擎讀取特定網頁。

ps. 十多年前,百度的 bot 會在一秒內同時送出數十個 HTTP request 來檢索網頁,導致機器被DoS。後來不爽把所有中國網段全部用防火牆給擋了 ... Orz

沒有留言:

張貼留言

除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)