前面講到,好心人用 AI 做出一個前端網頁,分享給大家用,自己覺得沒什麼問題。
但站在企業的角度來看 看到的是另一回事

1. 靜態網頁不是一張不會動的紙
它每次被打開,都會重新從好幾個地方組裝一次:repo、CDN 上的套件、後面串的服務。任何一個環節被動手腳,下一個開頁面的人就中招,而且網址完全沒變,沒人會察覺。

2. DOM-based XSS
AI 產的程式很愛用 innerHTML 把使用者輸入直接塞進頁面,網址參數、檔名、表單內容都是入口。攻擊者做一個帶 payload 的連結貼到群組說「這工具很好用」,頁面原始碼一個字沒動,點的人全中。GitHub Pages 這類空間又不能設 CSP,連第二道防線都沒有。

3. 第三方腳本與供應鏈
從 CDN 拉 jQuery、圖表套件、UI 框架,<script> 沒加 integrity。CDN 被打、套件被下毒、維護者帳號被盜推了惡意版本,開這頁的人全部一起中。一個頁面拉五個外部腳本,就是五個你不認識的人可以在同仁的瀏覽器裡跑程式。

4. 金鑰寫在前端
純前端要串服務,key 一定在 JS 裡,按 F12 就看得到。API key 被拿去刷爆額度、Firebase config 被拿去直接讀資料庫。就算後來刪掉,git history 裡還在。

5. 「靜態」背後其實有後端
表單送到 Apps Script、資料存 Firebase 或試算表,頁面再把別人填的內容讀出來顯示。存取規則如果是 AI 幫你設的預設值,通常是全開:任何人都能讀、能寫,寫一筆帶 script 的資料進去就是 stored XSS。網頁看起來是靜態的,資料庫是活的。

6. 上傳功能
檔案沒離開瀏覽器的話,風險在前端解析套件的漏洞(pdf.js、圖片解碼都出過可執行 JS 的 CVE)和 SVG 直接當 XSS 用。檔案送到後端的話,那個空間就變成一個沒人看管、看起來可信的惡意檔案交換站。做的人通常連自己屬於哪一種都不知道。

7. Repo 與帳號
沒開兩步驟驗證、branch 沒保護、有其他 collaborator。帳號被盜,push 一個 commit 加一行 script,Pages 自動重新部署,從那一刻起每個人載的都是新版本。用自訂網域還有 CNAME 懸空被接管的問題。

8. 身份驗證、紀錄的疑慮以及原始碼全公開
網址拿到就能用,誰用過、傳了什麼,一筆都沒有,出事無法追溯。
就算有紀錄,紀錄也不在你手上。好心人可能裝了 Google Analytics、Firebase 自己會留 log、免費主機有存取紀錄,但這些都在別人的平台上:留多久你不知道、要調要跟誰要你不知道、格式能不能給稽核或主管機關看你也不知道。而且紀錄本身就是資料——IP、時間、輸入了什麼——平台被打穿,紀錄跟著外洩,等於多一份個資放在外面。
Repo 公開,程式碼、註解、測試資料、內部流程和單位名稱全部看得到,是資訊揭露也是社交工程素材。而且帳號被停、免費方案改條款,頁面說沒就沒,業務跟著停。

9. 免費不等於有人幫你顧
GitHub、Google、Firebase 這些平台相較之下是安全的,但那是「平台本身」的安全。這叫共同責任模型:他們負責機房不被打穿、服務不被入侵;你負責你的設定、你的程式、你的資料、你的帳號。

Repo 開公開、存取規則全開、key 寫在前端、2FA 沒開,這些全部在「你」那一邊,平台不會管、也不會提醒。而好心人以為用了大廠的服務就等於有人幫他把關,其實從頭到尾都沒有人在看。
那如果放的不是大廠,是某個來路不明的免費空間呢?
那就連「平台那一邊」都不保證了。免費主機被打穿、老闆跑路、資料被拿去賣、頁面被偷偷塞廣告或挖礦腳本、沒有 HTTPS、沒人修漏洞,這些都發生過。大廠至少會顧好自己那一半;小平台可能完全沒人顧。
而一般人或市面上教的通常都是:免費、能用為優先。

1. 沒有審核允許流程
企業對外部服務的使用有規範,但這個工具直接繞過了。不是好心人故意繞,是整個流程對他來說不存在:申請表在哪、要找誰、什麼東西算「系統」需要申請,沒人告訴過他。規範寫得再好,使用者不知道它適用在自己身上,就等於沒有。
2. 沒有主管知道這東西在幹嘛、怎麼跑出來的
單位主管只知道「同仁做了個工具很好用」,不知道它串了什麼、資料去哪、誰在維護。資訊主管更是完全不知道有這東西。一個在企業裡跑了幾個月、好幾個單位在用的工具,沒有任何一個管理層級知道它存在,這本身就是問題。
3. 資料分級沒人做
哪些資料可以放進這種工具、哪些不行,好心人沒有判斷依據,他只知道「這樣比較方便」。個資、機敏資料、內部流程,跟一般資料混在同一個表單裡送出去。企業如果有資料分級規範,這裡是它最常失效的地方。
4. 沒有變更管理
工具改了什麼、什麼時候改的、誰改的,沒人知道。今天多加一個欄位、明天換一個套件、後天串一個新服務,使用者照樣用,資安照樣不知道。就算今天審過了,明天已經不是同一個東西。
5. 異常了要找誰、誰處理
工具壞了、開不了了,使用者第一個找的是資訊部門,但資訊部門根本不知道這東西存在,也沒有原始碼、沒有文件、沒有需求。做的人可能已經換單位或離職。最後變成沒人能修,業務停在那裡。
6. 算錯了,誰負責
工具沒壞,只是算錯。財務報表少一個零、薪資算錯一個係數、某個關鍵數值套錯公式,或者文字整理時漏掉一段、換掉一個字。使用者不會驗算,因為「工具算的」這四個字讓所有人都停止懷疑。
企業正式系統有測試、有驗證、有簽核,錯了有人扛;這個工具什麼都沒有,錯了只能找到一個好心人,而他也不知道 AI 為什麼這樣算。
7. 出事了、被政府機關通報了,誰要處理
個資外洩被通報,通報單上寫的是企業,不是好心人。這時候要交代資料怎麼流出去的、影響範圍多大、有沒有紀錄可以查——全部答不出來,因為從頭到尾就沒有人在管。處理的人是資安,責任是企業的,做的人可能只是一句「我不知道會這樣」。

問題不在「前端網頁」,而在這整件事發生在企業的視線之外。單純的工具,一旦碰到資料、碰到公開網址、碰到沒人負責,就不單純了。
這些同仁沒有惡意。主管叫他們擁抱 AI,他們真的做出了能用的東西,有些還比資訊部排隊好幾個月才排到的案子更貼近需求,畢竟做的人就是每天在用的人。從企業治理的角度來看在抓誰違規是必要的,可是是正確處理這件事情的方式嗎? 我只是在想,這些東西已經跑起來了,然後呢?

是真的沒有,還是害怕發現?