很多人以為只有大企業的網站才會被駭,但實際上,駭客常使用自動化工具大量掃描網路上的網站,只要發現漏洞就會嘗試入侵,網站的規模大小並不是重點。網站一旦被駭,可能造成客戶資料外洩、首頁被竄改,或被植入惡意程式,影響的不只是網站本身,還有企業的信譽。
本文說明網站被駭的常見原因,以及最常被提到的兩種攻擊手法:SQL Injection 與 XSS,並整理企業可以採取的防護方式。
網站被駭的常見原因
網站被入侵,通常是因為以下幾種弱點:
- 程式漏洞:網站程式沒有妥善處理使用者輸入的資料,讓攻擊者有機可乘,SQL Injection 與 XSS 都屬於這一類。
- 系統與外掛沒有更新:網站系統、外掛或套件的已知漏洞沒有修補。
- 密碼與管理後台保護不足:使用容易猜到的密碼,或管理後台的登入頁面沒有額外的保護。
- 檔案上傳功能沒有限制:網站允許上傳檔案,卻沒有檢查檔案類型與內容。
- 主機與伺服器設定不當:例如錯誤訊息顯示過多系統細節,或開放了不必要的服務。
國際非營利組織 OWASP(Open Worldwide Application Security Project)定期整理網站應用程式的十大安全風險 OWASP Top 10。在 2021 年版與 2025 年版中,SQL Injection 與 XSS 都歸在「注入(Injection)」這個類別。
什麼是 SQL Injection?
SQL Injection(SQL 資料隱碼攻擊)發生在網站與資料庫溝通的過程中。網站的登入、搜尋、表單等功能,會把使用者輸入的內容帶入資料庫查詢;如果程式沒有妥善處理這些內容,攻擊者就可能在輸入欄位中夾帶特殊內容,讓資料庫把它當成指令執行。
可以把它想像成:櫃台人員照著顧客填的單子直接辦事,卻沒有確認單子上寫的是不是正常的需求。
可能造成的影響:讀取資料庫中的會員或客戶資料、竄改或刪除資料,甚至繞過登入驗證進入管理後台。
防護方向:
- 使用參數化查詢:讓使用者輸入的內容只會被當作資料,而不會被當成指令執行,這是 OWASP 建議的首要防護方式。
- 驗證輸入的資料:只接受符合預期格式的內容,例如電話欄位只接受數字;但輸入驗證是輔助措施,不能取代參數化查詢。
- 限制資料庫帳號的權限:網站使用的資料庫帳號,只給予必要的權限。
- 不顯示詳細的錯誤訊息:避免錯誤畫面透露資料庫或系統的資訊。
什麼是 XSS?
XSS(Cross-Site Scripting,跨網站指令碼攻擊)是攻擊者把惡意程式碼放進網頁內容中,例如留言板、搜尋結果或網址參數。當其他訪客瀏覽這個頁面時,惡意程式碼就會在訪客的瀏覽器中執行。
和 SQL Injection 攻擊資料庫不同,XSS 的目標是網站的訪客。
可能造成的影響:冒用訪客的帳號身分、竊取訪客的資料,或在網頁上載入攻擊者準備的內容。
防護方向:
- 輸出時進行編碼:網頁顯示使用者輸入的內容前,先轉換特殊字元,讓瀏覽器把它當成文字顯示,而不是當成程式執行。
- 驗證輸入的資料:限制欄位可以輸入的內容與格式,作為輔助的防護措施。
- 設定內容安全政策(CSP):限制網頁可以執行的程式來源,作為額外的防護層。
- 設定 Cookie 屬性:為登入狀態的 Cookie 加上 HttpOnly 等屬性,讓網頁程式無法讀取,降低 XSS 發生時造成的影響。
SQL Injection 與 XSS 比較
SQL Injection 與 XSS 的差異
| 比較項目 |
SQL Injection |
XSS |
| 攻擊對象 |
網站的資料庫 |
瀏覽網站的訪客 |
| 常見入口 |
登入、搜尋、表單等會查詢資料庫的功能 |
留言板、搜尋結果、網址參數等會顯示輸入內容的地方 |
| 主要影響 |
資料外洩、竄改或刪除 |
訪客帳號被冒用、資料被竊取 |
| 防護重點 |
參數化查詢、限制資料庫權限 |
輸出編碼、內容安全政策 |
企業可以怎麼保護網站?
網站資安不是一次性的工作,建議從以下幾個方向持續進行:
- 定期更新系統與套件。網站系統、外掛與伺服器軟體公布安全更新時,要盡快評估並更新。
- 定期進行弱點掃描。透過專業的弱點掃描工具檢測網站,在被攻擊之前找出並修補漏洞。
- 加強管理後台的保護。使用不易猜測的密碼,並視需要加上多因素驗證或限制可登入的來源。
- 定期備份網站與資料。網站萬一出問題,可以盡快從備份還原。
- 使用 HTTPS 加密傳輸。保護訪客與網站之間傳送的資料,避免在傳輸途中被竊取。
常見問題
小型企業的網站也會被駭嗎?
會。駭客常使用自動化工具大量掃描網站,只要發現漏洞就會嘗試入侵,不會因為網站規模小而略過。
網站有 HTTPS,就不會被駭了嗎?
不會。HTTPS 保護的是資料在傳輸過程中的安全,無法防範網站程式本身的漏洞,SQL Injection 與 XSS 仍需要從程式面防護。
網站被駭了,該怎麼處理?
建議先將網站暫時下線或切換到維護頁面,保留相關紀錄,更換管理帳號的密碼,並請專業人員找出漏洞、修補後再上線。若因違反《個人資料保護法》規定,導致個人資料被竊取或洩漏,應查明後以適當方式通知當事人。
網站多久要做一次弱點掃描?
建議定期進行,並在網站改版、新增功能或系統更新後再次檢測。實際頻率可以依網站的功能與處理的資料類型評估。
從程式開發開始重視資安
網站資安最有效的做法,是從程式開發階段就做好防護,上線後再透過弱點掃描與定期維護持續把關。如果你擔心網站的資安狀況,歡迎參考我們的網站開發服務,或直接聯絡我們,我們提供免費的線上諮詢。
(本文初稿由 AI 協助整理)