小心! 讓你意想不到的網站備份檔,可能讓整個資料庫外洩:一份 404 記錄的實際觀察

本文最早發表於 2018 年 11 月,2026 年 10 月整理後移至穩站

網站根目錄的備份檔可能讓整個資料庫外洩

寫這篇文章的時候,我在資訊網路領域已經工作了 20 年,平常處理的就是網管、網站與系統的事務,對資安一直很小心,每一個可能被入侵的地方都會先做好防範。

也因為這樣,我管理的網站一直沒有發生過資料被竊的情形。
(當然也有可能,只是我的規模還沒有大到讓人想下手)

反而是身邊有朋友經營的網站,發生過客戶資料外洩。我一直想不通,如果程式碼和防火牆都做得夠好,資料為什麼還是會被拿走?

直到有一天,我在檢查網站的 404 記錄時,才找到一個很可能的答案。

(補充:404 是網站找不到某個頁面時回應的錯誤代碼。定期檢查 404 記錄,原本是為了 SEO 與使用者體驗,找出失效的連結)

先請您看這張截圖:

駭客惡意掃描的記錄

這是某個不知名的來源,持續在掃描我其中一個網站根目錄下的各種檔案,右側是它的 IP 位址。我反查了這個 IP,位置在烏克蘭基輔獨立廣場旁的一棟建築,看不出用途,也很可能只是一個跳板。

用 IP 查詢駭客的地理位置

用 IP 查詢駭客的地理位置

如果您也想查詢某個 IP 的地理位置,可以使用 https://redirect.li/map/

這些被掃描的檔案,在我的網站上其實都不存在。那麼,對方為什麼要一直試?如果這些檔案剛好真的存在,又會發生什麼事?

這正是即使網站程式碼沒有漏洞,防火牆也把其他連接埠全部關閉、只留下網站本身對外開放,機密資料仍然可能被拿走的原因。我自己也差一點因為這件事出問題。

以下是我從記錄中整理出來的部分檔名,請先大致看過,再繼續往下讀:

/www.zip
/www.tgz
/www.tar.gz
/www.tar.bz2
/www.tar
/www.rar
/www.jeweli.zip
/www.jeweli.tgz
/www.jeweli.tar.gz
/www.jeweli.tar
/www.jeweli.sql.gz
/www.jeweli.sql
/www.jeweli.rar
/www.jeweli.gz
/www.jeweli.cc.zip
/www.jeweli.cc.tgz
/www.jeweli.cc.tar.gz
/www.jeweli.cc.tar
/www.jeweli.cc.sql.gz
/www.jeweli.cc.sql
/www.jeweli.cc.rar
/www.jeweli.cc.gz
/www.jeweli.cc.bck
/www.jeweli.cc.7z
/www.jeweli.bck
/www.jeweli.7z
/www.gz
/www.bck
/wp/wp-config.php~
/wp/wp-config.php.bck
/wp/wp-config.php.bak
/wp/wp-config.bck
/wp/wp-config.bak

清單中有許多 www.xxx 這類的檔名,它們大多是壓縮檔,也就是整個網站的完整備份。

這類檔案通常是這樣產生的:用 SSH 登入 Linux 主機,在網站根目錄下執行類似下面的壓縮指令,把整個網站打包:

zip -r ?????.zip *
tar cvf FileName.tar DirName
tar zcvf FileName.tar.gz DirName
gzip FileName

或是在 Windows Server 上,對網站目錄按右鍵選「傳送到壓縮檔」;也有可能是網域控制台的自動備份所產生的。

我自己有時候也會用這樣的指令建立壓縮檔,再下載到電腦和雲端儲存。幸好我從來沒有用上面那些名稱來命名,因為我確實有忘記刪除壓縮檔的時候。

如果名稱剛好被猜中,網站的原始碼,以及裡面用來連線資料庫的帳號密碼,就會整份被下載走,網站本身也可能被竄改或刪除。

如果您的資料庫和網站在同一台主機上(也就是 localhost),通常只有那台主機能連線,所以即使帳號密碼外流,對方也登不進資料庫。
(例外是:您的主機控制台剛好也用同一組帳號密碼,而且控制台的登入網址也被知道,對方就能從控制台打開資料庫)

但我當時使用的是 Amazon RDS 獨立資料庫,它有公開的連線網址。如果有人取得了資料庫設定檔,就可以直接登入,把所有客戶資料帶走。
(我的資料庫另外設定了只允許一個 IP 登入,所以除非我工作用的電腦也被入侵,否則其他人無法連線)

清單中還有 www.jeweli.cc.xxx 這類的檔名,那是對方用我其中一個網域 jeweli.cc 組合出來測試的檔名。幸好我也沒有這樣命名過。

接著是 xxx.sql 這類的檔名。它通常是把資料庫直接匯出的備份,裡面就是最重要的客戶資料。這種檔案一旦被找到,前面資料庫的防護做得再好也沒有用。

資料被拿走之後,您可能要面對法律責任,您的客戶也可能因此接到詐騙;如果客戶的密碼沒有加密儲存,他的信箱、Facebook 等其他帳號也可能接著被入侵。

最後是 wp-config.php.bak、.bck 這類的檔名。這是 WordPress 網站設定檔的備份,通常是在主機上直接修改設定時產生的。

正式的 wp-config.php 從外部讀不到內容,但 .bak、.bck 這類備份檔可以被直接下載,而裡面同樣存著資料庫的帳號密碼。如果您的資料庫剛好可以從外部連線,又沒有限制 IP,結果就和前面說的一樣。

整理下來,我認為這是一個發生機率很高、卻很少被想到的資料外洩管道。

它和程式寫得多完善、防火牆設得多嚴格沒有關係,因為網站本來就必須對外開放;只要根目錄裡留著這些檔案,任何人都可以直接下載。

所以,請您或您的網站管理員盡快檢查所有網站,看看根目錄裡有沒有這類備份檔或類似的檔案,有的話請移到網站以外的地方或刪除。如果您的網站一直有找不出原因的資安問題,這可能就是其中一個答案。

作者:許凱迪

許凱迪


這篇文章寫於 2018 年。
2026 年 10 月,我又看了一次自己網站的 404 記錄,光是其中一個網站,一週內就有 131 次是在找這類備份檔
所以這件事並沒有過去,只是換了檔名繼續在發生

如果您想知道您的網站有沒有留著這類檔案,可以先把網址留給我,我會幫您看一下

留網址給我

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *