【網頁技術與資安】
在這個電子書中我會從網際網路的運作原理開始講起,介紹常見的駭客攻擊術以及如何防禦,以及加強自己網站系統的資安強度!
網頁技術學到一個程度後,下一步就是基礎工程師與資深工程師的分水嶺 – 「資安」了,寫出「能運作」的系統是基本,寫出「能防禦」的系統,才是關鍵 !!
在這篇電子書中會提及:
- 網際網路運作原理
- 瀏覽器運作原理
- 伺服器運作原理
- XSS攻擊
Google 資安小體驗
https://phishingquiz.withgoogle.com
- 打開連結,選擇一個模擬信箱情境
- 逐封判斷「釣魚 or 正常」
- 每題看解析:攻擊者用了什麼手法?
資安概論
資訊安全是指保護資訊的機密性、完整性與可用性,並確保系統能抵禦未授權的存取、竄改、洩漏或中斷。
在 Web 開發中,資安不是「上線前才加的功能」,而是從需求分析、架構設計、程式撰寫、測試、部署到維運都必須納入的持續性工作。
flowchart TB
subgraph threats["威脅來源"]
A[外部攻擊者]
B[惡意使用者]
C[供應鏈風險]
D[人為疏失]
end
subgraph assets["需保護的資產"]
E[使用者資料]
F[商業邏輯]
G[API 與金鑰]
H[系統可用性]
end
subgraph controls["防禦措施"]
I[身份驗證]
J[授權控管]
K[加密傳輸]
L[輸入驗證]
M[監控與稽核]
end
threats --> assets
controls --> assets
以下內容皆會在之後的篇章做詳細的說明,這裡先賣個關子(?)
CIA 三要素
| 要素 | 英文 | 定義 | 常見威脅 | 防禦方向 |
|---|---|---|---|---|
| 機密性 | Confidentiality | 只有授權者能讀取資料 | 資料外洩、越權存取 | 加密、存取控制 |
| 完整性 | Integrity | 資料未被未授權竄改 | SQL Injection、參數竄改 | 簽章、雜湊、輸入驗證 |
| 可用性 | Availability | 授權使用者能正常使用服務 | DDoS、勒索軟體 | Rate Limiting、備援 |
安全原則
| 原則 | 說明 |
|---|---|
| 最小權限 | 只給完成工作所需的最少權限 |
| 縱深防禦 | 多層防護,單點失效不導致全面失守 |
| 預設拒絕 | 未明確允許的操作一律禁止 |
| 不信任使用者輸入 | 所有外部輸入都視為不可信 |
常見攻擊
| 攻擊類型 | 主要發生位置 | 一句話說明 |
|---|---|---|
| XSS | 前端 | 注入惡意腳本 |
| CSRF | 前端 + 後端 | 誘導已登入使用者執行非本意請求 |
| SQL Injection | 後端 | 透過輸入拼接 SQL |
| IDOR | 後端 API | 修改 ID 存取他人資源 |
| SSRF | 後端 | 誘使伺服器向內部網路發送請求 |
