name:<img src=javascript:alert(1)>
var test = {name:$name}
var test = {name:<img src=javascript:alert(1)>}
http://mac**on.com/Getprofile.html?callback=profileCallback&id=20
profileCallback({"profile":[{"name":"macaron","age":21}]})
macaron.com
data.macaron.com
<div class="test">
<script>
function profileCallback(result){
document.write(result.profile[0].name);
document.write(result.profile[0].age);
}
</script>
<script src = "http://data.mac**on.com/Getprofile.html?callback=profileCallback&id=20"
src = "text/javascript">
</script>
</div>
使用者前端這段程式碼是允許跨域連結data.mac**on.com,把輸出資料作為參數傳遞給profileCallback,透過呼叫介面,得出:
macaron 21
問題是 data.mac**on.com 未做任何驗證的情況下,使用了第三方不可信的JSON資料,這樣就會把終端使用者的資訊透露出來,而且當網站將使用者要連結的資料注入惡意javascript程式碼,那有可能會受到XSS攻擊
例如:
profileCallback(
{"profile":[
{
"name":"macaron","age":"<script>alert('haha');</script>"
}
]
})