使用 ajax 和 json 的 XSS
XSS using ajax and json
假设我有一个第三方 API,我从中收到 ajax 回复,其中包含一些图片的 URL 并且仅以两种方式使用:作为 [=12= 的参数] 函数并作为 <img>
标签的来源。这安全吗?我可以确定在这种情况下没有 XSS 是可能的,即使我不信任提供提到的服务器 API?
JSON.parse
是安全的,但是如果您在页面中显示图像,例如:
var o = JSON.parse(reply)
var i = "<img src='" + o.path +'>"
someElement.innerHTML = i
然后 XSS 可以像这样完成,例如:
{"path" : "aaa.jpg' onload='alert(1)"}
为了避免创建图像元素并通过 js 设置其属性就足够了:
var i = document.createElement('img')
i.src = o.path
someElement.innerHTML = ''
someElement.appendChild(img)
那就万事大吉了
假设我有一个第三方 API,我从中收到 ajax 回复,其中包含一些图片的 URL 并且仅以两种方式使用:作为 [=12= 的参数] 函数并作为 <img>
标签的来源。这安全吗?我可以确定在这种情况下没有 XSS 是可能的,即使我不信任提供提到的服务器 API?
JSON.parse
是安全的,但是如果您在页面中显示图像,例如:
var o = JSON.parse(reply)
var i = "<img src='" + o.path +'>"
someElement.innerHTML = i
然后 XSS 可以像这样完成,例如:
{"path" : "aaa.jpg' onload='alert(1)"}
为了避免创建图像元素并通过 js 设置其属性就足够了:
var i = document.createElement('img')
i.src = o.path
someElement.innerHTML = ''
someElement.appendChild(img)
那就万事大吉了