資訊安全基礎
在某網頁應用程式的登入畫面中,只要在密碼欄位輸入 ' OR '1'='1 之類的字串,不知道密碼也能登入。這種攻擊稱為什麼?
- ASQL隱碼攻擊
- B跨網站指令碼攻擊
- C目錄遍歷
查看答案與解析
正確答案:A. SQL隱碼攻擊
SQL隱碼攻擊是利用網頁應用程式把使用者的輸入直接當作字串串接起來,組成對資料庫的命令(SQL敘述)的攻擊。例如在組出「密碼等於'輸入值'」條件之處放入 ' OR '1'='1,引號會把字串結束,並附加上「或'1'等於'1'」這個永遠成立的條件。結果不知道密碼條件也會成立,因而能夠登入。同樣的手法也可能用來竊取、竄改或刪除資料。根本的對策是使用不會把輸入解讀為命令一部分的機制,也就是使用預留位置的參數化查詢(prepared statement)。
- A. 正確。以輸入改變SQL敘述意義的攻擊就是SQL隱碼攻擊。
- B. 跨網站指令碼攻擊是在網頁中嵌入惡意指令碼,讓它在瀏覽者的瀏覽器中執行的攻擊。
- C. 目錄遍歷是在檔名參數中放入 ../ 等,讀取未公開檔案的攻擊。