22. 依據 OWASP Top 10 有關應用程式未驗證或過濾使用者所提
供資料而產生風險之敘述,下列何者有誤?
(A) 常見的攻擊手法包含 Cross-site Scripting 攻擊
(B) 常見的攻擊手法包含 SQL Injection 攻擊
(C) 需要將命令與查詢資料合併,以防止注入式攻擊
(D) 屬 OWASP Top 10 的 Injection 風險
答案:登入後查看
統計: A(204), B(91), C(909), D(100), E(0) #3246607
統計: A(204), B(91), C(909), D(100), E(0) #3246607
詳解 (共 5 筆)
#6164060
C.需要將命令與查詢資料「分開」,以預防注入式攻擊。
2
0
#6166641
一些常見的注入式攻擊是 SQL、NoSQL、OS 指令、物件關係對映 (ORM)、LDAP以及表達式語言 (EL) 或對象導航圖語言 (OGNL) 注入。這個概念在所有的直譯器都是相同的。假若應用程式存在注入式攻擊的弱點,源碼檢測是最好的方式。強烈建議對所有輸入的參數、標頭、URL、cookies、JSON、SOAP 以及 XML 的資料進行自動化測試。組織可以將靜態源碼測試 (SAST) 以及動態應用程式檢測 (DAST) 工具,包含到持續整合與持續部署 (CI/CD)管道中,以達成在上線部署前能識別注入攻擊的缺陷。

ㅤㅤ
ㅤㅤ
0
0
#7379173
正確答案是 (C)。
答案解析:
(C) 錯誤原因: 敘述完全顛倒了。「將命令與查詢資料合併」恰恰就是造成注入式攻擊(如 SQL Injection)的根本原因!
為什麼錯: 當程式碼直接把使用者輸入的字串(資料)用「字串拼接」的方式直接黏在 SQL 指令(命令)後面,資料庫就會把使用者輸入的惡意代碼誤認為是系統命令的一部分來執行。
正確做法: 為了防止注入式攻擊,我們必須**「將命令與資料分開處理」。在後端開發中,最標準的防禦手段是使用參數化查詢(Parameterized Queries / Prepared Statements)**。這樣不論使用者輸入什麼奇怪的符號,資料庫都只會將其視為純粹的「資料(參數)」,而不會當成「指令」執行。
其他選項說明(皆為正確描述):
(A) 正確: Cross-site Scripting (XSS,跨網站指令碼) 在廣義上也是一種將惡意腳本(通常是 JavaScript)注入到網頁 HTML 中的手法。雖然在較新的 OWASP Top 10 版本中它被歸類在「跨網站指令碼」或「注入」的不同子集內,但其核心本質皆源自於對使用者輸入未做適當過濾與驗證。
(B) 正確: SQL Injection(SQL 隱碼攻擊)是注入式漏洞(Injection)中最典型、最廣為人知的代表性攻擊手法。
(D) 正確: 題目敘述「應用程式未驗證或過濾使用者所提供資料而產生風險」,這正是 Injection(注入) 這一大類風險的標準定義。
0
0