Cross-Site Scripting
跨站腳本攻擊
跨站腳本攻擊(XSS)是攻擊者控制的資料,在受信任網站中被瀏覽器當成程式碼執行。
另一個例子
論壇貼文含有 `<img alt="" onerror=…>`。安全的範本會把它當文字插入、只清理並允許一小部分 Markdown、阻擋危險 URL,再執行 CSP。回歸測試會分別檢查 HTML、屬性、URL、CSS 和 JavaScript 情境。
主要部分
- 01不受信來源
- 02解譯 Context 與危險 Sink
- 03編碼/淨化邊界
什麼時候用
不受信任的輸出要依實際情境進行編碼,並使用安全的 DOM API。若允許 HTML,就要用嚴格的允許清單清理,再加入 CSP 作為另一層防護。
什麼時候不要用
同一個 Escape 函式不適用所有情境。只做輸入檢查或只用 CSP,也不能讓每個危險寫入點都安全。
程式裡的名稱
contextual output encoding + safe sinks + HTML sanitization + CSP 上線前要檢查
只能在明確授權且隔離的防禦測試中操作。檢查信任邊界、無害回歸案例和緩解方法。也要檢查機密與個資處理,以及隱藏敏感資料的偵測訊號。再檢查安全失敗、事件負責人、復原與回復上一版。不得測試真實目標。
預期成果:評估並緩解 跨站腳本攻擊 (Cross-Site Scripting) 的風險。不得實作、啟用或在真實環境使用這種攻擊。 使用者情境:論壇貼文含有 `<img alt="" onerror=…>`。安全的範本會把它當文字插入、只清理並允許一小部分 Markdown、阻擋危險 URL,再執行 CSP。回歸測試會分別檢查 HTML、屬性、URL、CSS 和 JavaScript 情境。 要處理的風險或控制措施:跨站腳本攻擊 (Cross-Site Scripting)。 適用理由:不受信任的輸出要依實際情境進行編碼,並使用安全的 DOM API。若允許 HTML,就要用嚴格的允許清單清理,再加入 CSP 作為另一層防護。 分類邊界:同一個 Escape 函式不適用所有情境。只做輸入檢查或只用 CSP,也不能讓每個危險寫入點都安全。 安全要求:只能在已明確授權、與外界隔離的測試環境中操作。使用無害且不會執行的輸入。保護機密與個人資料,說明哪些資料或系統可以互相信任(信任邊界),並記錄緩解方法。 營運防護:上線前設好偵測與隱藏敏感資料的記錄。指定事件負責人,並定義失敗時保持安全及回復上一版的方法。 驗收條件:防禦用回歸測試在緩解前失敗,緩解後通過。不使用真實目標、機密或個人資料。監控與回復上一版的方法都已驗證。 證據與限制(證據邊界):它只代表該來源的官方說法。其他平台或團隊可能有不同用法。 待確認:授權範圍、受影響資產、資料等級、可能的攻擊者、事件負責人,以及回復上一版的限制。
檢查這份需求
請 AI 程式助手檢查目前如何使用 跨站腳本攻擊 (Cross-Site Scripting)。 定義:跨站腳本攻擊(XSS)是攻擊者控制的資料,在受信任網站中被瀏覽器當成程式碼執行。 正式環境檢查:只能在明確授權且隔離的防禦測試中操作。檢查信任邊界、無害回歸案例和緩解方法。也要檢查機密與個資處理,以及隱藏敏感資料的偵測訊號。再檢查安全失敗、事件負責人、復原與回復上一版。不得測試真實目標。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。