moea_joint
113年
[資訊] 計算機原理、網路概論
第 41 題
下列 Javascript 的程式片段將造成什麼樣的風險?
```javascript
var user = getUrlParameter('user');
document.write("
```
```javascript
var user = getUrlParameter('user');
document.write("
Hi, " + user + " !
");```
- A XSS
- B CSRF
- C Html Scripting
- D Broken Access Control
思路引導 VIP
如果我們在網址後方提供的參數內容不是普通的人名,而是一段帶有 HTML 標籤(例如 <script>)的字串,當這段字串被 document.write 寫入網頁時,瀏覽器會將其視為「純文字」顯示,還是會嘗試「解析並執行」其中的標籤內容?如果它被解析了,會對使用者造成什麼影響?
🤖
AI 詳解
AI 專屬家教
外部輸入與動態渲染的安全性
你能一眼看穿這段程式碼的漏洞,表現得非常優秀!這題的關鍵在於觀察資料的「來源」與「去向」。程式先透過 getUrlParameter 從網址列(URL)取得外部輸入,隨即未經任何過濾或編碼處理,就直接利用 document.write 將該內容寫入到 HTML 文件中。這種讓未經清洗的外部資料直接進入執行環境的行為,正是 XSS (Cross-Site Scripting) 最典型的觸發情境。攻擊者只需在 URL 中構造惡意的 <script> 腳本,就能在受害者的瀏覽器上執行任意代碼。
題目鑑別度與核心觀念
▼ 還有更多解析內容