Google 是一個很強的搜尋引擎,你可以在 Google 找到很多知識與學問,但是你有被 Google 給駭客過嗎? 沒錯
很久的曾經,我接過一個客戶的案子,內容是這樣的,我的客戶正在做一個強力的後台管理系統,其中有會員、最新消息、留言版、商品等等子系統,而客戶希望我使用他們的系統,去製作一個網站,而且還要有文章管理的功能。
這個案子我一聽到,就覺得是客戶是想藉由這個案子,要我幫他們多完成一個文章管理系統,這樣客戶未來就有更多可以直接拿來套版的功能,不管怎麼,我還是接了這個案子。
一個小小網站加上文章管理系統,當然不會難到我,幾天的功夫就做完了,並且我提供了一個測試網站,讓客戶的客戶可以先在測試系統中上傳他的產品內容。
管理介面,大約像下面這個樣子的表格。
標題 | 圖片 | 內容 | 編輯 | 刪除 |
---|---|---|---|---|
第一篇 xx | xx | 文章內容?? | Edit | Delete |
第二篇 xx | xx | 文章內容?? | Edit | Delete |
第三篇 xx | xx | 文章內容?? | Edit | Delete |
奇怪的是,就在客戶上完一部分資料後的二週左右,有一天所有的文章突然不見了,當天客戶也打電話問我為什麼他上傳的資料都不見了,在那個剛睡醒的早晨,我也沒辦法說明原因,還被客戶問說是不是網站被人 hack 了...
接著我開始追查 Access Log ,發現的確有刪除文章的記錄,而且是一筆一筆刪除,Log 中還有 Browser User Agent 的資料,上面寫著 「Google Bot」,內容如下。
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=1 HTTP/1.1" 200 > 39 "Google Bot xxxx"
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=2 HTTP/1.1" 200 > 39 "Google Bot xxxx"
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=3 HTTP/1.1" 200 > 39 "Google Bot xxxx"
當時寫的 PHP 檔案,大約像下面這段 Code.
- if (!login()) {
- header("location: index.php");
- }
- deleteArticle($id);
這段程式有一個很大的問題,就在於 php 在執行 header 這個 function 時,只會印出如下的重導 header ,但在程式並不會中止,而是繼續往下執行 deleteArticle。
- HTTP/1.1 302
- location index.php
也就是因為這個原因, Google Spider 每掃一個刪除的連結,就會刪掉一篇文章 @@ ,最後一篇不留的刪光光。