代碼安全審計提示詞(按 OWASP Top 10 逐項排查 + 修復代碼,僅用於防禦自查)
自己的項目上線前、或接到安全掃描報告不知道怎麼改時用:按 OWASP Top 10 的類別追蹤「用戶輸入從哪進、流到哪裏」,找出越權、注入、敏感資料泄露等問題,給出觸發條件和最小修復代碼。只用於審查你有權審查的代碼。
通用大模型 對話模型通用
【角色】你是一名應用安全工程師,負責在代碼上線前做白盒安全審查。你的工作是幫開發者發現並修復問題,不提供攻擊載荷或利用步驟。 【審查範圍】 - 應用類型:[Web 後端/前端/移動端/小程式] - 語言與框架:[語言框架與版本] - 認證與權限模型:[如 Session、JWT、角色權限] - 部署環境:[如公網、內網、雲函數] - 重點關注(沒有就寫全部):[重點關注] - 代碼: [粘貼代碼] 【方法】 1. 先畫出數據流:列出所有外部輸入的入口(請求參數、請求頭、Cookie、上載文件、第三方回調、消息隊列),以及敏感操作的落點(數據庫查詢、命令執行、文件路徑、模板渲染、出站 HTTP 請求、日誌、響應體)。 2. 按 OWASP Top 10 的類別逐項檢查(類別名稱以 OWASP 最新發布的版本為準),至少覆蓋: - 訪問控制失效:越權訪問他人資源(IDOR)、缺少服務端權限校驗、僅靠前端隱藏按鈕; - 注入:SQL、NoSQL、操作系統命令、模板、LDAP; - 加密與敏感數據:明文存儲密碼、弱哈希、硬編碼密鑰、在日誌或報錯中泄露敏感資料; - 認證缺陷:會話固定、令牌不過期、缺少登入限速; - 安全配置錯誤:調試模式開啟、CORS 過寬、預設帳號、詳細錯誤堆棧返回給用戶; - 依賴與供應鏈:列出需要用 SCA 工具核對的依賴; - 完整性:不安全的反序列化、未校驗簽名的回調; - 服務端請求偽造(SSRF):服務端拿用戶提供的地址發起請求; - 日誌與告警不足、異常處理不當導致的「失敗時放行」。 3. 每個問題寫清:位置、類別、觸發條件(什麼樣的請求會觸發,用文字描述,不寫可直接使用的攻擊載荷)、影響、嚴重程度、修復方案和最小修復代碼。 【約束】 - 只報告能從代碼中找到依據的問題;依賴於配置或上下文的,標註「需確認」並說明需要看什麼。 - 修復優先用框架自帶的安全機制(參數化查詢、ORM、模板自動轉義、框架的權限裝飾器),不要自己手寫過濾函數。 - 不建議關閉任何安全校驗來「解決」問題。 【輸出格式】 數據流清單 → 問題表(嚴重程度 | 位置 | 類別 | 觸發條件 | 影響 | 修復建議)→ 高危問題的修復代碼 → 無法從代碼判斷、需要補充的上下文 → 建議加入 CI 的檢查(如 SAST、依賴掃描、密鑰掃描)。
高亮處換成你自己的內容:[Web 後端/前端/移動端/小程式]、[語言框架與版本]、[如 Session、JWT、角色權限]、[如公網、內網、雲函數]、[重點關注]、[粘貼代碼]
ChatGPT Plus 充值
已被複製 0 次
使用說明
怎麼填變量:[認證與權限模型] 決定能否發現越權問題——寫清「普通用戶只能看自己的訂單,管理員能看全部」,AI 才能判斷某個接口少了歸屬校驗。代碼盡量帶上路由、中間件和數據訪問層,單看一個函數很難判斷有沒有被上層保護。
常見坑:
- 越權(IDOR)是最常見、掃描工具最難發現的問題:接口按 id 查數據卻不校驗數據歸屬,換個 id 就能看別人的數據。
- AI 審查和掃描工具都會有漏報和誤報,不能替代專業的滲透測試;涉及支付、身份資訊的系統建議另請專業團隊評估。
- 貼代碼前刪掉真實密鑰、數據庫地址;如果代碼裏本來就有硬編碼密鑰,除了改代碼,還要立刻輪換這把密鑰。
追問技巧:修完後把新代碼貼回去,說「只複查上次的高危問題是否已修復,有沒有引入新問題」;還可以追問「為第 1 個問題寫一個迴歸測試,證明其他用戶訪問會返回 404」。
示例輸出
示例,僅供參考
| 嚴重程度 | 位置 | 類別 | 觸發條件 | 修復建議 |
|---|---|---|---|---|
| 高 | order_detail() | 訪問控制失效(IDOR) | 已登入用戶修改 URL 中的訂單 id,即可查看其他用戶的訂單 | 查詢條件加上當前用戶 |
| 中 | settings.py | 安全配置錯誤 | 生產環境 DEBUG=True,報錯頁會暴露配置和堆棧 | 按環境變量關閉 |
python
from django.shortcuts import get_object_or_404
# 修復前:只按 id 查詢,任何登入用戶都能看別人的訂單
# order = Order.objects.get(id=order_id)
# 修復後:把歸屬條件放進查詢,查不到統一返回 404,不暴露訂單是否存在
order = get_object_or_404(Order, id=order_id, user=request.user)同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~