本安全政策適用於 SQL教學文件專案,涵蓋所有教學內容、範例程式碼、資料庫操作腳本以及相關的配置檔案。本專案旨在提供安全的教學環境,確保學習者能在不暴露敏感資料的情況下學習 SQL 與 AI 整合技術。
- 教學文件與範例程式碼
- 公開的 API 文件
- 開源授權資訊
- 開發配置檔案
- 測試資料集
- 工作記錄與日誌
- API 金鑰與存取憑證
- 資料庫連線字串
- 環境變數檔案 (
.env) - 任何真實的個人資料
注意:本教學專案不應包含任何真實的個人資料或機密資訊。所有範例均應使用虛構或匿名化的資料。
本專案識別出以下主要威脅情境:
-
未經授權的存取
- 惡意使用者取得資料庫存取權限
- API 金鑰外洩導致的服務濫用
-
資料外洩
- 敏感配置檔案誤提交至版本控制系統
- 教學範例中包含真實個人資料
-
服務中斷
- SQL 注入攻擊導致資料庫損壞
- 過度的 API 呼叫導致服務中斷
-
程式碼注入
- 教學範例中的不安全程式碼被學習者誤用
- 惡意程式碼透過 Jupyter Notebook 執行
-
金鑰與憑證管理
- 所有 API 金鑰、密碼與憑證必須透過環境變數管理
- 提供
.env.example範本,但不包含真實憑證 - 使用
.gitignore排除.env檔案
-
資料庫安全
- 使用參數化查詢,禁止字串拼接 SQL
- 實作最小權限原則,教學用資料庫帳號僅具備必要權限
- 定期備份測試資料庫
-
程式碼安全
- 所有外部輸入必須經過驗證與清理
- 實作適當的錯誤處理,避免洩漏系統資訊
- 使用安全的依賴套件,定期更新以修補漏洞
-
存取控制
- Jupyter Notebook 應設定密碼或 token 保護
- 限制網路存取範圍,避免公開暴露
-
日誌與監控
- 記錄所有資料庫操作與 API 呼叫
- 監控異常活動與錯誤模式
- 日誌不應包含敏感資訊(密碼、金鑰等)
- 使用
pip-audit或safety定期掃描依賴套件漏洞 - 保持 Python 與相關套件的最新穩定版本
- 審查第三方套件的安全性與維護狀態
- 所有教學範例必須遵循安全編碼最佳實踐
- 在範例中明確標註安全注意事項
- 提供安全與不安全程式碼的對照說明
我們非常重視並感謝所有來自外部研究員的安全回報。
請優先使用以下管道回報安全漏洞:
-
GitHub Security Advisories(推薦)
- 前往專案頁面,點選 "Security" 標籤
- 選擇 "Report a vulnerability"
- 私下提交漏洞詳情
-
電子郵件
- 寄信至:green07111@noreply.github.com
- 主旨請標註:[Security] 漏洞回報
-
72 小時內回覆:我們承諾在收到通報後 72 小時內回覆,確認已收到您的報告。
-
7–30 天修補:根據漏洞的嚴重度,我們將在 7 至 30 天內提供修補或緩解計畫:
- 嚴重 (Critical):7 天內
- 高風險 (High):14 天內
- 中風險 (Medium):21 天內
- 低風險 (Low):30 天內
-
協調式揭露 (Coordinated Disclosure):
- 在修補完成後,我們將與您協調,共同決定公開漏洞細節的時機與方式
- 在公告中向您致謝(除非您希望匿名)
- 我們承諾不對善意的安全研究員採取法律行動
為了方便研究員快速找到通報管道,我們建議在網站根目錄部署 /.well-known/security.txt 檔案(依據 RFC 9116):
Contact: mailto:green07111@noreply.github.com
Expires: 2026-12-31T23:59:59Z
Preferred-Languages: zh-TW, en
Canonical: https://github.com/[your-org]/[your-repo]/.well-known/security.txt
Policy: https://github.com/[your-org]/[your-repo]/blob/main/docs/SECURITY.md
本專案的服務設計遵循以下法規與準則:
-
台灣個人資料保護法 (PDPA)
- 僅蒐集業務所需的最小資料
- 履行告知義務,明確說明資料用途
- 保障資料主體的查詢、更正、刪除權利
- 實作適當的技術與組織措施保護個人資料
-
歐盟一般資料保護規則 (GDPR)(若適用)
- 遵循資料最小化原則
- 實作資料可攜權與被遺忘權
- 確保資料處理的合法性、公正性與透明性
我們的研發流程參考以下國際安全標準與最佳實踐:
-
OWASP Application Security Verification Standard (ASVS)
- 採用 ASVS Level 2 作為安全開發基準
- 涵蓋身份驗證、存取控制、資料保護等面向
-
OWASP API Security Top 10
- 防護常見的 API 安全風險
- 實作速率限制、輸入驗證、安全配置
-
OWASP REST Security Cheat Sheet
- 遵循 RESTful API 安全最佳實踐
- 使用 HTTPS、安全的 HTTP 方法、適當的錯誤處理
-
OWASP SQL Injection Prevention Cheat Sheet
- 使用參數化查詢或 ORM
- 實作輸入驗證與清理
- 採用最小權限原則
為了讓我們能更快地重現並處理問題,您的回報請盡可能包含以下資訊:
- 漏洞類型:SQL 注入、XSS、CSRF、敏感資料外洩等
- 影響範圍:受影響的端點、功能或元件
- 嚴重度評估:Critical / High / Medium / Low(可參考 CVSS)
提供詳細的重現步驟,包含:
- 環境設定(作業系統、瀏覽器、Python 版本等)
- 必要的配置或前置條件
- 逐步操作說明
- 預期行為 vs 實際行為
- 程式碼片段或請求範例(如適用)
- 截圖或錄影(如適用)
- 是否涉及個資:說明此漏洞是否可能導致個人資料外洩
- 是否可被自動化濫用:評估此漏洞被大規模利用的可能性
- 潛在影響:描述最壞情況下的影響範圍
若您有任何修補建議,請一併提供:
- 建議的修正方向或程式碼範例
- 參考資料或相關文件連結
- 替代的緩解措施
提醒:若您的回報涉及機敏資料或需要附件,請:
- 先寄信向我們索取 PGP 公鑰
- 使用加密附件傳送敏感資訊
- 不要在公開管道洩漏漏洞細節
- GitHub Watch:在專案頁面點選 "Watch" → "Custom" → 勾選 "Security alerts"
- Release Notes:關注專案的 Release Notes,我們會在其中標註安全更新
- 緊急安全更新:發現嚴重漏洞時立即發布
- 定期更新:每月檢查依賴套件並更新
- 年度審查:每年進行一次全面的安全審查
開發者在提交程式碼前應確認以下事項:
- 無硬編碼的金鑰、密碼或敏感資訊
- 所有 SQL 查詢使用參數化查詢
- 所有外部輸入經過驗證與清理
- 錯誤訊息不洩漏系統資訊
- 實作適當的錯誤處理機制
-
.env檔案已加入.gitignore - 提供
.env.example範本 - 環境變數使用強密碼與隨機 token
- 生產環境禁用 debug 模式
- 依賴套件已更新至最新穩定版本
- 已執行
pip-audit或safety check - 無已知的高風險漏洞
- 測試資料不包含真實個人資料
- 日誌不記錄敏感資訊
- 資料庫備份已加密存儲
- 範例程式碼遵循安全最佳實踐
- 安全注意事項已明確標註
- 提供安全與不安全程式碼的對照說明
- 安全團隊郵箱:green07111@noreply.github.com
- GitHub Security:使用 GitHub Security Advisories
- 專案網址:[請填入專案 URL]
我們感謝所有協助改善專案安全性的研究員與貢獻者。以下是我們的安全貢獻者名單(依時間順序):
- [待補充] - 回報 [漏洞類型] (YYYY-MM-DD)
最後更新:2025-01-15
下次審查:2025-07-15