內容簡介
結合心智圖、實戰範例與思考提問
打造一套真正內化的資安學習體驗
【重點摘要】
❏ 圖像資安學習:用心智圖統整重點,幫你理清觀念、加深記憶
❏ 循序漸進引導:從基礎概念出發,搭配練習與實例,打造紮實底子
❏ 新手友善入門:以非資安背景的視角出發,幫你減少學習焦慮
❏ 激發資安思維:從開發者角度出發,透過實例與提問,理解資安背後的邏輯
本書內容改編自第15屆iThome鐵人賽Security組優選系列文章《從自建漏洞中學習-一起填坑吧》。並在原始基礎上進行重整與補充,打造更適合初學者閱讀的資訊安全學習筆記。全書以心智圖作為知識整理與呈現的方式,幫助讀者在龐雜的資安主題中建立脈絡感,快速掌握核心概念與學習順序。
本書不教如何繪製心智圖,而是運用圖像化的整理方式,將抽象的資安概念轉化為可理解的學習地圖。內容涵蓋資安基礎、常見攻擊手法、開發常見弱點與安全對策等,搭配範例與引導式提問,讓讀者思考每個知識點的意義與應用場景。
這不只是一本Web資訊安全的入門書,更是陪伴學習的思考筆記。適合剛踏入資安領域的學習者、來自開發背景但對安全有興趣的工程師,或是正在尋找一條清晰起點的轉職者,一起從圖像、提問與實例中,慢慢建構屬於自己的資安學習路徑。
【目標讀者】
◘ 對資訊安全感興趣,期望建立基礎觀念的開發者
◘ 希望跳脫教科書式學習、尋找實用路徑的資安學習者
◘ 喜歡圖像整理、重視理解與脈絡的視覺型讀者
作者介紹
廖若雅(Kika)
現任資安顧問,過去曾擔任前端工程師,擁有 Web 開發實務經驗,並參與 DevSecOps Taiwan 社群。轉入資安領域後,專注於安全程式設計、弱點分析與 DevSecOps 的初步實踐。特別關注如何在使用者體驗與資訊安全之間取得平衡,期望讓安全不只是規範,而能自然融入產品之中。
目前正以自己的節奏深耕學習,並透過筆記、教學與小工具,將艱澀的資安概念轉化為開發中實用、易懂的知識。相信即使不是資安出身,也能憑藉工程思維,找到屬於自己的切入點與發光的舞台。
目次
關於本書
CHAPTER 1 初探Input
1.1 網站上的「孔洞」- Input
1.2 讓Input 變乾淨的原因
1.3 如何讓Input 變乾淨?
1.4 如何避免執行別人的程式碼?
CHAPTER 2 處理不明來源的Input
2.1 黑名單、白名單知多少
2.2 處理不明來源的原因
2.3 控管IP 來源
2.4 採取安全流程
CHAPTER 3 規範 Input 的範圍
3.1 檔案上傳的位置和權限控制的重要性
3.2 規範檔案上傳的原因
3.3 如何規範檔案上傳
CHAPTER 4 注入攻擊補充
4.1 遺留的其他注入式攻擊
CHAPTER 5 Open Redirect-開放式重定向
5.1 前言
5.2 攻擊者是怎麼攻擊的?
5.3 如何防禦?
CHAPTER 6 CSRF-跨站請求偽造
6.1 登入後,攻擊者能冒用身份?
6.2 先了解同源政策,再了解CSRF
6.3 如何防禦CSRF 攻擊?
CHAPTER 7 Session-based?Token-based?
7.1 前言
7.2 Session-based 認證
7.3 Token-based 認證
7.4 Token 應該存在哪裡?
7.5 Session-based 和Token-based 認證的比較
CHAPTER 8 安全開發指南
8.1 前言
8.2 設計前的準備
8.3 初探威脅建模和資安鐵三角
8.4 Node.js 安全實踐注意事項
8.5 關於前端,我們還能怎麼做?
CHAPTER 9 安全開發心態建立
9.1 什麼是內憂外患?
9.2 內憂:錯誤處理(Error Handling)
9.3 外患:寫測試也要涵蓋極值
CHAPTER 10 安全開發流程
10.1 什麼是CI/CD ?
10.2 DevOps 與DevSecOps
10.3 軟體開發生命週期和安全軟體開發生命週期
10.4 CI/CD 工具-Github Actions
CHAPTER 11 範例專案準備
11.1 前言
11.2 安裝Node.js 和建立初始專案
11.3 安裝Angular 並初始化前端專案
11.4 結合Webpack 和Angular 進行混淆
11.5 MySQL Server 安裝
11.6 Nginx 安裝
CHAPTER 12 專案實踐
12.1 範例架構與技術
12.2 設計重點與安全實踐
12.3 範例實踐