Yoru Karu Studio

程式設計學習筆記 | 生活心得

CSRF 基礎:跨站請求偽造攻擊

⚠️ 免責聲明 本文內容僅供教育與學習用途。請勿將文中技術用於任何未經授權的系統或惡意目的。 📚 本篇重點 🎯 理解 CSRF 攻擊原理與特徵 🔍 區分 CSRF 與 XSS 的差異 💣 認識真實的 CSRF 攻擊案例 🛡️ 學習基礎防禦策略 閱讀時間: 約 15 分鐘 難度: ⭐⭐ 中階 1️⃣ 什麼是 CSRF? 📖 定義 CSRF (Cross-Site Request Forgery),跨站請求偽造,又稱 XSRF 或 Session Riding,是一種攻擊手法,攻擊者誘使受害者在已登入的網站上執行非預期的操作。 🔑 關鍵特徵 特徵 說明 利用信任 利用網站對已認證用戶的信任 非預期操作 受害者不知情地執行操作 需要登入狀態 攻擊者不需要知道密碼,只需受害者已登入 跨站點 攻擊發起自不同的網站(跨站) 自動發送 Cookie 瀏覽器自動附帶身份驗證 Cookie 🔄 攻擊流程 Step 1: 受害者登入銀行網站 (bank.com) ↓ 獲得 Session Cookie Step 2: 受害者訪問攻擊者的惡意網站 (evil.

05-2. PostgreSQL Protocol 完整指南

🐘 PostgreSQL Protocol 完整指南 ⏱️ 閱讀時間: 12 分鐘 🎯 難度: ⭐⭐ (中等) 🎯 本篇重點 理解 PostgreSQL 前端/後端協定的原理、Simple Query vs Extended Query 的差異、COPY Protocol 批次匯入,以及與 MySQL Protocol 的對比。 🤔 什麼是 PostgreSQL Protocol? PostgreSQL Protocol = PostgreSQL 前端(客戶端)與後端(伺服器)之間的通訊協定 一句話解釋: PostgreSQL Protocol 定義了客戶端如何與 PostgreSQL Server 建立連線、執行查詢、處理結果的規則,相比 MySQL 提供更細粒度的控制。 比喻:精品餐廳 vs 速食店 MySQL Protocol = 速食店 - 簡單快速 - 套餐模式(Text/Binary Protocol 二選一) PostgreSQL Protocol = 精品餐廳 - 更多選擇 - 可以單點(Parse、Bind、Execute 分開控制) - 更靈活的客製化 🏗️ PostgreSQL Protocol 在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬──────────────────────┐ │ 7.

10-3. XMPP 協定詳解

💬 XMPP 協定詳解 🎯 什麼是 XMPP? 💡 比喻:去中心化的 Email 系統 + 即時通訊 就像 Email: - user@gmail.com 可以寄信給 friend@yahoo.com - 不需要都用同一家服務(分散式) 但又像 LINE/WhatsApp: - 即時傳送訊息 - 看得到對方在線與否 - 可以群組聊天XMPP(Extensible Messaging and Presence Protocol) 原名 Jabber,是一種開放、可擴展的即時通訊協定,基於 XML 格式進行訊息傳輸。 為什麼選擇 XMPP? 對比其他協定: 特性 XMPP MQTT 專屬協定(LINE/WhatsApp) 開放性 ✅ 開放標準 ✅ 開放標準 ❌ 封閉 分散式 ✅ 可自建伺服器 ❌ 需要 Broker ❌ 只能用官方伺服器 可擴展 ✅ XML 可擴展 ⚠️ 有限 ❌ 無法擴展 線上狀態 ✅ 內建 ❌ 需自己實作 ✅ 內建 適用場景 即時聊天、社交 IoT、感測器 消費者 App 🏗️ XMPP 架構 分散式設計 💡 比喻:Email 系統 alice@gmail.

Django 面試準備 08-4:防止超賣方案

08-4. 防止超賣方案 📌 什麼是超賣? 超賣(Overselling):指實際銷售的數量超過了庫存數量。 典型場景 商品庫存:10 件 訂單 A:購買 5 件 ✓ 訂單 B:購買 6 件 ✓ 實際賣出:11 件 ⚠️ 結果:超賣 1 件! 🔴 超賣的危害 1. 業務損失 場景:秒殺活動,iPhone 只有 10 台 結果:賣出 15 台 損失:5 台 × NT$ 40,000 = NT$ 200,0002. 用戶投訴 用戶下單成功 → 支付完成 → 被告知缺貨 結果:用戶體驗極差,引發投訴和退款3. 法律風險 根據《消費者保護法》,已收款但無法交貨可能構成欺詐。 🎯 防超賣的核心原則 1. 單一數據源 ❌ 錯誤:多個地方維護庫存 - 數據庫有庫存 - Redis 有庫存 - 內存中也有庫存 → 容易不一致 ✅ 正確:Redis 為主,數據庫為輔 - Redis:實時庫存(高性能) - 數據庫:持久化庫存(可靠性)2.

XSS 攻擊實例與演練

⚠️ 免責聲明 本文內容僅供教育與學習用途。請勿將文中技術用於任何未經授權的系統或惡意目的。所有演練應在本地測試環境或專門的安全練習平台進行。 📚 本篇重點 🎯 建立本地 XSS 演練環境 🔍 實戰 5 個完整的 XSS 案例 🛡️ 從攻擊者和防禦者視角學習 💼 準備技術面試的實戰經驗 閱讀時間: 約 25 分鐘 難度: ⭐⭐⭐ 中高階 1️⃣ 建立演練環境 方案 1: 本地 Django 項目(推薦) 我們將建立一個故意包含漏洞的 Django 應用,用於學習和演練。 Step 1: 建立項目 # 建立項目目錄 mkdir xss-lab cd xss-lab # 建立虛擬環境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安裝 Django pip install django # 建立 Django 項目 django-admin startproject xsslab .

05-1. MySQL Protocol 完整指南

🐬 MySQL Protocol 完整指南 ⏱️ 閱讀時間: 12 分鐘 🎯 難度: ⭐⭐ (中等) 🎯 本篇重點 理解 MySQL 客戶端/伺服器協定的原理、連線建立流程、驗證過程、查詢執行機制,以及連線池如何優化效能。 🤔 什麼是 MySQL Protocol? MySQL Protocol = MySQL 客戶端與伺服器之間的通訊協定 一句話解釋: MySQL Protocol 定義了客戶端(如 MySQL Workbench、程式)如何與 MySQL Server 建立連線、驗證身份、執行查詢的規則。 比喻:餐廳點餐流程 1. 進門(建立連線) 2. 出示會員卡(驗證身份) 3. 點餐(執行查詢) 4. 結帳離開(關閉連線) MySQL Protocol 就是規範這整套流程的「標準作業程序」 🏗️ MySQL Protocol 在網路模型中的位置 OSI 7 層模型 ┌──────────────────────────────┬─────────────────┐ │ 7. Application Layer (應用層) │ MySQL Protocol │ ← MySQL 在這裡 ├──────────────────────────────┼─────────────────┤ │ 6. Presentation Layer (表示層)│ 加密、壓縮 │ ├──────────────────────────────┼─────────────────┤ │ 5.
0%