今天要來聊聊一個,嗯,有點嚴肅但又很荒謬的話題。你有用過 Scribd 嗎?就是那個號稱「全球最大數位圖書館」的網站。聽起來很棒對吧?海量的電子書、有聲書、雜誌... 但如果我跟你說,它同時也可能是網路上最大、最公開的「個人機密檔案櫃」,你作何感想?
我們常常有一種錯覺,覺得像 Scribd、Google Drive 或 Dropbox 這種大平台,上傳檔案就跟鎖進自家保險箱一樣安全。但事情...好像不是這樣。尤其當一個平台為了讓你「免費」下載東西,而鼓勵你「隨便」上傳點什麼來交換時,這簡直就是一場災難的完美配方。你知道嗎,這就像用你的身分證去跟路人換一杯便利商店的咖啡一樣,聽起來很虧,但很多人真的就這麼做了。🤷♂️
重點一句話
Scribd 的「上傳換下載」機制,無意間讓它變成一個巨大的、可供任何人搜尋的個人隱私資料庫,從護照、薪資單到銀行對帳單,通通躲在光天化日之下。
這到底是怎麼一回事?一切都是從好奇心開始的
好,故事是這樣開始的。某天下午,我就在想,Scribd 上面有一億九千多萬份文件,除了那些正經八百的電子書跟學術論文,難道就沒有點別的「好料」嗎?這純粹是出於一種直覺啦。
於是我抱著試試看的心態,在它的搜尋框裡打了個關鍵字:「passport」(護照)。
結果... 哇,跳出來的結果真的嚇到我。一堆又一堆,看起來就像是某人的護照掃描檔。我的第一個念頭是,天啊,如果連護照這種東西都有人敢傳,那其他東西不就更...?
接下來,我試了更多關鍵字:「offer letter」(錄取通知)、「bank statement」(銀行對帳單)、「invoice」(發票),每一個都像打開了潘朵拉的盒子。老實說,當下的心情很複雜,一方面覺得「我靠,挖到寶了」,另一方面又覺得背脊發涼。這些都不是假的資料,是活生生的人的真實生活片段。
這時候我就意識到,這件事得寫出來。大家需要知道自己可能在無意中暴露了多少隱私。如果這篇文章能讓平台本身注意到這個問題,那也算是功德一件了。
怎麼做到的?其實簡單到有點可怕
要讓大家相信這件事的嚴重性,光用嘴巴說沒用,我需要數字。但我總不能一個一個檔案點開來手動計算吧?那也太傻了。我需要用程式化的方法來「爬」資料。
一開始我設定了幾個抓取條件,讓範圍縮小一點:
- 只看過去一年內上傳的文件。
- 文件長度大概在 1 到 3 頁之間,因為身分證、護照、帳單這種東西通常都短短的。(我知道這樣可能會漏掉很長的銀行對帳單,算是一種取捨吧)
- 文件的檔名或網址裡,要包含我要找的關鍵字,比如 `.../passport-scan.pdf` 之類的。
條件訂好了,但問題來了,要怎麼自動抓取?Scribd 又沒有公開給一般人用的 API(應用程式介面)。正當我一籌莫展的時候...機會來了。
你知道的,身為一個對網路世界充滿好奇的人,沒事開著瀏覽器的「開發者工具」(按 F1 就能打開的那個酷東西)是很正常的。那天我又在 Scribd 上搜尋時,就在「網路」分頁裡,看到了一個神奇的東西!
Voila! 一個 API 端點就這樣赤裸裸地出現在我眼前。它基本上就是 Scribd 網站自己用來跟伺服器要搜尋結果的內部通道。這就像你發現了一家餐廳服務生專用的秘密點餐系統一樣。
這個 API 一次最多會回傳 42 筆結果,而且可以翻頁。那接下來就簡單了,我只需要寫個簡單的腳本,一直去跟這個 API 要資料就行了。
我用了一個叫做 `cURL` 的指令行工具,搭配 `jq` 來解析回傳的 JSON 資料。聽起來很宅對吧?簡單講,這段指令的意思就是:
# 大致上的概念,非原始碼
# 對伺服器說:「嗨,請給我關鍵字是『passport』的搜尋結果,從第 1 頁到第 12000 頁」
for page in {1..12000}; do
# 發出請求,並把回傳的網址存到一個叫 urls.txt 的檔案裡
curl "https://www.scribd.com/internal/api/search?query=passport&page=$page" | jq '.results[].url' >> urls.txt
done
我讓電腦跑了一段時間,針對十幾個我認為可能很敏感的關鍵字,重複這個過程。沒多久,我就拿到了一大串文件的網址清單。
結果有多驚人?看看這些數字跟案例
好了,技術宅的部分結束。我們來聊聊大家最關心的:到底找到了些什麼?
總計,這次的「研究」一共撈出了 **13,197 份**獨一無二的個人身份資訊(PII)文件,涵蓋了 15 種不同的類別。而且,我自己是覺得,這只是冰山一角!畢竟我只查了幾個關鍵字,而且只看了過去一年的資料。實際上的數字...想了就可怕。
最常見的文件類型是什麼?你可能猜不到,是「Offer Letter」(錄取通知書)!
這東西上面不只有你未來閃亮亮的薪水數字,還有你的全名、住家地址、Email、手機號碼...基本上就是一份完美的身家調查報告。但這還不是最扯的。
我們還找到了:
- 銀行對帳單:詳細記錄你的金融交易。
- 各式帳單:水電費、電話費,上面都有你的地址。
- WhatsApp 聊天記錄備份:誰知道裡面聊了什麼秘密?
- 疫苗接種證明:這還算小事。
- 簽證文件:完整的出入境規劃。
- 2FA 備用碼:這真的,我看到的時候真的傻眼。雙因素驗證的備用碼耶!這等於是把你所有帳號的「萬能鑰匙」直接丟在一個公開的圖書館裡。上傳這個的人到底在想什麼?這表示用戶根本不了解這東西的重要性。如果是一個政府雇員把他 Gmail 的備用碼傳上來...後果不堪設想。
說到這個,就不能不提到台灣跟國外情況的對比。在台灣,我們有《個人資料保護法》(簡稱個資法),對於企業如何蒐集、處理、利用個資有非常嚴格的規定。這點比美國很多地方都還要周全。像 Electronic Frontier Foundation (電子前哨基金會) 這種國際組織一直在倡導用戶隱私權,但法律歸法律,用戶的「資安意識」才是最脆弱的一環。
台灣的用戶可能不會沒事上傳護照,但很有可能會為了交換一份報告,隨手就把電腦裡一份申請補助用的「戶籍謄本」掃描檔給傳上去了。他們想的可能是「反正只是個檔案」,卻沒意識到上面有全家人的姓名、身分證字號跟出生日期。這在台灣的詐騙環境下,危險性甚至比護照還高。
風險與影響比較表(我的天啊版)
為了讓大家更有感覺,我整理了一個表格。看看這些文件類型跟它們可能造成的傷害,還有我個人的吐槽。
| 文件類型 | 裡面可能包含什麼 | 可能造成的傷害 | 我的反應... |
|---|---|---|---|
| Offer Letter (錄取通知) | 姓名、地址、電話、Email、職位、還有最重要的...薪水! | 社交工程攻擊(例如假冒你打電話給新公司 HR)、身分盜用、精準詐騙。 | 恭喜你找到新工作,但全世界都知道你賺多少了。🤦♂️ |
| Bank Statement (銀行對帳單) | 帳戶號碼、交易紀錄、帳戶餘額、消費習慣。 | 歹徒可以分析你的財務狀況,甚至可能冒用你的身分去申請貸款或信用卡。 | 等於把你的記帳本公開發行。 |
| Passport / ID Card (護照 / 身分證) | 姓名、照片、國籍、身分證號、出生日期...所有核心個資。 | 開設假帳戶、申辦服務、偽造身分進行非法活動。基本上就是「數位版」的你被偷了。 | 最不該出現在網路上的東西,沒有之一。 |
| 2FA Backup Codes (雙因素驗證備用碼) | 一組通常是 8-10 個的一次性密碼。 | 繞過你的兩步驟驗證,直接登入你的 Email、社群媒體、甚至加密貨幣交易所。Game Over。 | 我真的無法理解。這比把密碼貼在螢幕上還糟。🤯 |
| Invoice / Bill (發票 / 帳單) | 姓名、住址、消費品項、服務提供商。 | 確認你的居住地、生活模式。可以被用來進行更具說服力的釣魚郵件或電話。 | 雖然看起來還好,但這些資訊拼湊起來就很可怕了。 |
那我們該怎麼辦?
講了這麼多可怕的故事,不是要讓大家對網路世界感到絕望。而是要建立正確的防禦心態。這件事,Scribd 平台本身絕對有責任,他們應該要導入 AI 或關鍵字掃描,主動偵測並警告用戶不要上傳這類敏感文件。
但說真的,等平台改進,不如先從我們自己做起。畢竟,帳號是你的,資料是你的,人生也是你的。
從使用者的角度,我們可以做幾件事:
- 三思而後傳:在按下「上傳」按鈕前,花三秒鐘想一想:這份文件如果被全世界看到,我會不會有麻煩?如果答案是「會」,那就不要傳。
- 使用「垃圾文件」:如果你真的、真的只是為了換一份文件下載,必須上傳點什麼,那就創造一份「安全的垃圾文件」。例如,做一個只有一頁、上面寫著「這是一份測試文件」的空白 PDF。用這個去交換,安全又有效。
- 檢查隱私設定:如果你曾經上傳過文件,現在!立刻!馬上去 Scribd 的帳號設定裡,檢查你上傳過的文件清單,把所有可能是隱私的內容設定為「私密」(Private),或直接刪除。
- 養成數位衛生習慣:不要把你的「下載」資料夾或桌面當成永久儲存區。那裡常常是各種臨時文件(包括身分證掃描、帳單截圖)的聚集地,也是最容易隨手上傳出事的地方。
這件事給我們最大的教訓是:網路世界沒有真正的「私人角落」,除非你明確地設定了權限。所有你放到網路上的東西,都應該預設它有一天可能會被公開。
好啦,今天的分享差不多就到這裡。希望這篇有點嚇人的「研究」能讓你對網路隱私有更深一層的認識。這不是要製造恐慌,而是希望大家都能更聰明、更安全地悠遊在數位世界裡。
最後想問問大家:你有沒有曾經上傳了某個檔案到網路上,後來才驚覺不妥的經驗? 不用說出細節,可以在下面留言分享一下你的心情或學到的教訓,讓我們一起學習,避免重蹈覆轍!
