資訊安全基礎

在某網頁應用程式的登入畫面中,只要在密碼欄位輸入 ' OR '1'='1 之類的字串,不知道密碼也能登入。這種攻擊稱為什麼?

  1. ASQL隱碼攻擊
  2. B跨網站指令碼攻擊
  3. C目錄遍歷
查看答案與解析

正確答案:A. SQL隱碼攻擊

SQL隱碼攻擊是利用網頁應用程式把使用者的輸入直接當作字串串接起來,組成對資料庫的命令(SQL敘述)的攻擊。例如在組出「密碼等於'輸入值'」條件之處放入 ' OR '1'='1,引號會把字串結束,並附加上「或'1'等於'1'」這個永遠成立的條件。結果不知道密碼條件也會成立,因而能夠登入。同樣的手法也可能用來竊取、竄改或刪除資料。根本的對策是使用不會把輸入解讀為命令一部分的機制,也就是使用預留位置的參數化查詢(prepared statement)。

  • A. 正確。以輸入改變SQL敘述意義的攻擊就是SQL隱碼攻擊。
  • B. 跨網站指令碼攻擊是在網頁中嵌入惡意指令碼,讓它在瀏覽者的瀏覽器中執行的攻擊。
  • C. 目錄遍歷是在檔名參數中放入 ../ 等,讀取未公開檔案的攻擊。
練習這個領域 前往領域頁面

相關計算工具

資訊安全基礎的其他題目

  1. 作為SQL隱碼攻擊的對策,使用預留位置的參數化查詢(prepared statement),被視為比去除輸入中危險字元的方法更根本的對策。理由是什麼?
  2. 某留言板網頁應用程式有一個漏洞:使用者張貼的文章中所含的指令碼,會在其他瀏覽者的瀏覽器中執行。此漏洞的名稱與根本對策的組合,正確的是哪一項?
  3. 某網頁應用程式有一個漏洞:保持登入狀態的使用者若開啟攻擊者準備的陷阱網頁,使用者的瀏覽器就會向正規網站送出使用者並未意圖的匯款或設定變更請求。下列何者是適當的對策?
  4. 某網頁應用程式把URL參數所指定的檔名,與公開用資料夾的名稱串接後讀取並顯示。若指定包含 ../ 的值作為檔名,公開用資料夾外的設定檔等就會被讀取。此攻擊的名稱與對策的組合,正確的是哪一項?
  5. 網頁應用程式若在登入前後持續使用相同的工作階段ID,攻擊者可能讓使用者使用攻擊者事先準備的工作階段ID,並在使用者登入後以該ID冒充使用者。對這種攻擊最適當的對策是哪一項?