資訊安全基礎
某留言板網頁應用程式有一個漏洞:使用者張貼的文章中所含的指令碼,會在其他瀏覽者的瀏覽器中執行。此漏洞的名稱與根本對策的組合,正確的是哪一項?
- ASQL隱碼攻擊。加長連接資料庫所用的密碼
- B跨網站指令碼(XSS)。把張貼的文章以HTML輸出時,跳脫 < 與 > 等具有特殊意義的字元
- C跨網站指令碼(XSS)。以HTTPS加密伺服器與瀏覽器之間的通訊
查看答案與解析
正確答案:B. 跨網站指令碼(XSS)。把張貼的文章以HTML輸出時,跳脫 < 與 > 等具有特殊意義的字元
跨網站指令碼(XSS)是網頁應用程式把使用者的輸入直接輸出到HTML中,導致輸入所含的指令碼作為網頁的一部分,在瀏覽者的瀏覽器中執行的漏洞。指令碼是以該網站的網頁身分執行,因此可能竊取瀏覽者的工作階段資訊(Cookie),或顯示假的輸入欄位。根本的對策是依輸出的位置,把 <、>、& 與引號等具有特殊意義的字元跳脫(例如把 < 轉換為 <),使其只顯示為一般字元。輔助的對策包括為Cookie加上HttpOnly屬性使指令碼無法讀取,以及以內容安全性原則限制可執行的指令碼。HTTPS保護的是通訊路徑,無法防止嵌入合法網頁中的指令碼執行。
- A. 指令碼在瀏覽器中執行並不是SQL隱碼攻擊,加長連線密碼也無關。
- B. 正確。原因是把輸入直接輸出,因此輸出時跳脫是根本的對策。
- C. 名稱正確,但HTTPS保護的是通訊路徑,無法阻止嵌入合法網頁中的指令碼執行。