Yoru Karu Studio
程式設計學習筆記 | 生活心得程式設計學習筆記 | 生活心得
02-1. SQL Injection 基礎:什麼是 SQL 注入? ⏱️ 閱讀時間: 15 分鐘 🎯 難度: ⭐⭐ (中等) ⚠️ 警告: 本文內容僅供學習與防禦用途,禁止用於非法攻擊
🎯 本篇重點 理解 SQL Injection 的基本原理、危害程度、真實案例,以及最常見的攻擊手法。掌握如何識別漏洞代碼。
🤔 什麼是 SQL Injection? SQL Injection(SQL 注入) = 在應用程式的輸入中注入惡意 SQL 指令,控制資料庫
一句話解釋: SQL Injection 就像是在點餐單上偷偷加字,讓廚房執行你想要的「額外指令」,而不只是做一份餐。
技術定義 正常情況: 應用程式:「SELECT * FROM users WHERE username = 'john'」 資料庫:回傳 john 的資料 SQL Injection: 應用程式:「SELECT * FROM users WHERE username = 'john' OR '1'='1'」 ↑ 注入的惡意代碼 資料庫:回傳所有用戶的資料! 🍔 生活中的比喻 情境:餐廳點餐 正常點餐: 你:「我要一份牛肉麵」 廚房:(做一份牛肉麵) 結果:你得到一份牛肉麵 SQL Injection 攻擊: 你:「我要一份牛肉麵,還有把所有客人的訂單都給我」 廚房:(沒有檢查)執行了兩個指令 1.
為什麼需要 Advanced RAG? 想像你建立了一個基礎的 RAG 系統,但發現:
❌ 使用者問:「那個框架怎麼裝?」 → 系統不知道「那個」指什麼,檢索失敗
❌ 檢索到 50 個結果 → 但前 5 個都不太相關,真正的答案在第 23 個
❌ 上下文太長 → 5000 tokens 的文檔,但只有 200 tokens 真正有用
這就是為什麼我們需要 Advanced RAG!它能將基礎 RAG 的準確率從 70% 提升到 90%。
🎯 Advanced RAG 的兩大優化階段 Advanced RAG 在基礎 RAG 的流程中加入了**檢索前(Pre-retrieval)和檢索後(Post-retrieval)**的優化:
基礎 RAG 流程: 使用者問題 → 向量化 → 檢索 → 生成答案 Advanced RAG 流程: 使用者問題 ↓ 🔧 Pre-retrieval 優化(檢索前) ↓ 向量化 → 檢索 ↓ 🔧 Post-retrieval 優化(檢索後) ↓ 生成答案🔍 Pre-retrieval(檢索前優化) 1.
01-4. 攻擊者思維 vs 防禦者思維 ⏱️ 閱讀時間: 10 分鐘 🎯 難度: ⭐ (簡單) ⚠️ 提醒: 本文內容僅供學習與防禦用途
🎯 本篇重點 理解攻擊者如何思考與行動,培養防禦者心態,學習如何從攻擊者角度審視系統弱點,建立縱深防禦策略。
🤔 為什麼要理解攻擊者思維? 孫子兵法的智慧 「知己知彼,百戰不殆」 - 孫子兵法 應用到資安: ✅ 知己(防禦者):了解自己系統的弱點 ✅ 知彼(攻擊者):理解駭客的思維與手法 ✅ 百戰不殆:才能建立有效的防禦 只做防禦,不懂攻擊 = 閉門造車優秀開發者的必備能力 初級開發者: └─ 功能開發完成就好 中級開發者: ├─ 功能開發 └─ 基本測試 高級開發者: ├─ 功能開發 ├─ 完整測試 └─ 考慮邊界情況 資安意識的開發者: ├─ 功能開發 ├─ 完整測試 ├─ 邊界情況 └─ 思考「駭客會如何攻擊?」 區別在於:能否預見潛在風險 🎭 攻擊者思維(Attacker Mindset) 核心特徵 1. 永不放棄 └─ 只要有一個漏洞,就能攻破系統 2. 創意思考 └─ 用開發者沒想到的方式使用功能 3.
09-4. 緩存更新策略 📌 核心問題:緩存一致性 緩存與數據庫如何保持一致?
緩存:price = 100 數據庫:price = 100 ↓ 用戶修改價格為 150 緩存:price = 100 ⚠️ 舊數據 數據庫:price = 150 ✅ 新數據不一致的後果:
用戶看到錯誤的數據 訂單金額計算錯誤 庫存顯示不準確 🎯 四大更新策略概覽 策略 誰負責更新 流程 適用場景 Cache Aside 應用程序 先更新 DB,再刪除緩存 ✅ 最常用 Read Through 緩存層 緩存自動從 DB 加載 讀多寫少 Write Through 緩存層 緩存自動更新 DB 強一致性 Write Behind 緩存層 異步更新 DB 高性能要求 🎯 策略 1:Cache Aside(旁路緩存) 最常用的策略 讀流程:
1. 查緩存 → 命中 → 返回 2.
01-3. 常見攻擊類型概覽 ⏱️ 閱讀時間: 12 分鐘 🎯 難度: ⭐⭐ (簡單) ⚠️ 提醒: 本文內容僅供學習與防禦用途
🎯 本篇重點 快速認識 10 種最常見的 Web 攻擊類型,理解攻擊原理、危害程度、真實案例,為後續深入學習打下基礎。
📊 攻擊類型總覽 10 大常見攻擊 攻擊類型 面試頻率 危害程度 難度 OWASP Top 10 SQL Injection ⭐⭐⭐ 必考 🔥 極高 ⭐⭐ A03 XSS ⭐⭐⭐ 必考 🔥 高 ⭐⭐ A03 CSRF ⭐⭐⭐ 必考 🔥 高 ⭐ A01 Broken Access Control ⭐⭐ 常考 🔥 極高 ⭐ A01 SSRF ⭐⭐ 常考 🔥 極高 ⭐⭐⭐ A10 Insecure Deserialization ⭐ 偶爾考 🔥 極高 ⭐⭐⭐ A08 Path Traversal ⭐⭐ 常考 🔥 高 ⭐ A01 XXE ⭐ 偶爾考 🔥 高 ⭐⭐ A03 Authentication Failures ⭐⭐ 常考 🔥 高 ⭐ A07 Security Misconfiguration ⭐⭐ 常考 🔥 中高 ⭐ A05 💉 1.
🔐 SMTP 認證:從開放中繼到安全驗證 ⏱️ 閱讀時間: 12 分鐘 🎯 難度: ⭐⭐⭐ (中等)
🏗️ SMTP 認證在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬─────────────────────────┐ │ 7. Application Layer (應用層) │ SMTP + AUTH │ ← 認證在這裡 ├──────────────────────────────┼─────────────────────────┤ │ 6. Presentation Layer (表示層)│ Base64 編碼 │ ├──────────────────────────────┼─────────────────────────┤ │ 5. Session Layer (會話層) │ TLS (加密) │ ├──────────────────────────────┼─────────────────────────┤ │ 4. Transport Layer (傳輸層) │ TCP │ ├──────────────────────────────┼─────────────────────────┤ │ 3. Network Layer (網路層) │ IP │ ├──────────────────────────────┼─────────────────────────┤ │ 2. Data Link Layer (資料鏈結層)│ Ethernet │ ├──────────────────────────────┼─────────────────────────┤ │ 1.