Yoru Karu Studio
程式設計學習筆記 | 生活心得程式設計學習筆記 | 生活心得
01-2. CIA 三元組:機密性、完整性、可用性 ⏱️ 閱讀時間: 10 分鐘 🎯 難度: ⭐ (簡單) ⚠️ 提醒: 本文內容僅供學習與防禦用途
🎯 本篇重點 理解資訊安全的三大核心原則:機密性、完整性、可用性(CIA Triad),以及它們在 Web 應用中的實際應用。
🤔 什麼是 CIA 三元組? CIA Triad = 資訊安全的三大核心原則
🔐 Confidentiality(機密性) ✅ Integrity(完整性) ⚡ Availability(可用性)一句話解釋: CIA 三元組是資訊安全的基石,確保資料只被授權者看到(C)、未被竄改(I)、隨時可用(A)。
🔐 C - Confidentiality(機密性) 定義 確保資料只能被授權的人看到
機密性 = 保護秘密 目標: - 防止未授權者存取資料 - 控制誰能看到什麼資料 - 保護敏感資訊生活中的例子 🏠 實體世界: ├─ 保險箱(只有你有鑰匙) ├─ 密封的信件(只有收件人可拆) └─ 醫療紀錄(只有醫生和病人能看) 💻 數位世界: ├─ 密碼(只有你知道) ├─ Email(只有收件人能讀) └─ 銀行帳戶(只有你能查看餘額)Web 應用中的機密性 需要保護的資料 👤 用戶資料: ├─ 密碼 ├─ Email ├─ 電話號碼 ├─ 地址 └─ 身份證字號 💳 金融資料: ├─ 信用卡號碼 ├─ 銀行帳號 ├─ 交易紀錄 └─ 收入資訊 🏢 商業資料: ├─ API 金鑰 ├─ 資料庫密碼 ├─ 商業機密 └─ 客戶名單如何實現機密性? # ✅ 正確:密碼加密儲存 from django.
09-2. Django 緩存框架 📌 Django 緩存層級 Django 提供了多層次的緩存機制:
1. 站點級緩存(Middleware) ↓ 2. 視圖級緩存(Decorator) ↓ 3. 模板片段緩存(Template Tag) ↓ 4. 底層緩存 API(Manual) 🔧 緩存後端配置 1. Redis(推薦) # settings.py CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/1', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'CONNECTION_POOL_KWARGS': { 'max_connections': 50, 'retry_on_timeout': True, }, 'PASSWORD': 'your-password', # 如果有密碼 'SOCKET_CONNECT_TIMEOUT': 5, 'SOCKET_TIMEOUT': 5, }, 'KEY_PREFIX': 'myapp', # 鍵前綴 'VERSION': 1, # 版本號 'TIMEOUT': 300, # 默認超時(秒) } }2. Memcached # settings.
為什麼 AI 需要「向量」? 想像你要在圖書館找書,傳統方式是看書名和關鍵字。但如果你想找「跟這本書意思相近的其他書」呢?
這時候,你需要一個能理解「意義」而非只看「文字」的系統。向量(Vector) 就是讓機器理解「意義」的關鍵技術。
本文將帶你從零理解:
什麼是向量?為什麼文字可以變成數字? 向量資料庫與傳統資料庫有何不同? 如何在實際專案中使用向量資料庫? 🎯 什麼是向量(Embedding)? 核心概念:用數字表示意義 向量是一串數字,用來表示文字、圖片、音訊等資料的語義資訊。
# 文字轉向量的例子 from sentence_transformers import SentenceTransformer model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') text1 = "Django 是網頁框架" vector1 = model.encode(text1) # 輸出:[0.23, -0.45, 0.67, 0.12, -0.89, ...] (384 維) text2 = "Flask 是網頁框架" vector2 = model.encode(text2) # 輸出:[0.25, -0.43, 0.69, 0.10, -0.91, ...] (384 維) text3 = "貓很可愛" vector3 = model.encode(text3) # 輸出:[-0.12, 0.87, -0.34, 0.56, 0.23, ...] (384 維)視覺化理解:意義的地圖 雖然實際向量有數百維,但我們可以用 2D 圖來理解:
01-1. 什麼是 Web 資安?為什麼重要? ⏱️ 閱讀時間: 8 分鐘 🎯 難度: ⭐ (超級簡單) ⚠️ 提醒: 本文內容僅供學習與防禦用途
🎯 本篇重點 理解什麼是 Web 資安、為什麼需要學習資安、真實世界的資安事件,以及基本的資安概念。
🤔 什麼是 Web 資安? Web Security(Web 資安) = 保護網站、Web 應用程式、API 免受攻擊的技術與實踐
一句話解釋: Web 資安就像是網站的保全系統,防止壞人偷取資料、破壞服務、冒充用戶。
🏠 用生活情境來比喻 實體世界的安全 你的家需要什麼保護? 1. 門鎖 🔐 → 防止陌生人進入 2. 監視器 📹 → 記錄可疑活動 3. 保險箱 🔒 → 保護重要物品 4. 警報系統 🚨 → 發現異常立即通知 如果沒有這些: → 小偷可以隨意進出 → 貴重物品被偷走 → 你可能完全不知道Web 世界的安全 你的網站需要什麼保護? 1. 身份驗證 🔐 → 確認用戶是誰(登入系統) → 類似:門鎖 2.
📹 WebRTC:點對點即時通訊 ⏱️ 閱讀時間: 18 分鐘 🎯 難度: ⭐⭐⭐⭐ (困難)
🏗️ WebRTC 在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬─────────────────────────┐ │ 7. Application Layer (應用層) │ WebRTC API │ ← WebRTC 在這裡 ├──────────────────────────────┼─────────────────────────┤ │ 6. Presentation Layer (表示層)│ 編碼/解碼 (VP8/H.264) │ ├──────────────────────────────┼─────────────────────────┤ │ 5. Session Layer (會話層) │ 信令 (SDP/SIP) │ ├──────────────────────────────┼─────────────────────────┤ │ 4. Transport Layer (傳輸層) │ UDP (SRTP/SCTP) │ ← 使用 UDP ├──────────────────────────────┼─────────────────────────┤ │ 3. Network Layer (網路層) │ IP (ICE/STUN/TURN) │ ├──────────────────────────────┼─────────────────────────┤ │ 2.
09-1. Redis vs Memcached 📌 為什麼需要緩存? 在 Web 應用中,數據庫往往是性能瓶頸:
用戶請求 → Django → 數據庫查詢(慢!)→ 返回數據引入緩存後:
用戶請求 → Django → 緩存(快!)→ 返回數據 ↓ 未命中 數據庫 → 更新緩存 → 返回數據緩存的價值:
⚡ 減少數據庫壓力(從 100ms 降到 1ms) 🚀 提升響應速度 💰 降低服務器成本 🔍 Redis vs Memcached 核心差異 快速對比表 特性 Redis Memcached 數據類型 String, Hash, List, Set, Sorted Set 僅支持 String 持久化 ✅ 支持(RDB、AOF) ❌ 不支持 分布式 ✅ 內建(Redis Cluster) ⚠️ 需要客戶端實現 單線程/多線程 單線程(6.0+ 支持多線程 I/O) 多線程 內存管理 更複雜(多種數據結構) 簡單(Slab 分配) 最大值大小 512MB 1MB 事務支持 ✅ 支持 ❌ 不支持 發布訂閱 ✅ 支持 ❌ 不支持 腳本支持 ✅ Lua 腳本 ❌ 不支持 🎯 Redis 詳解 1.