我有一个 Web 服务,它接受 POST 数据 (JSON) 并在 JSON 响应中返回请求对象的一部分。
如果响应被浏览器呈现为 HTML,这对 XSS 开放,因为有人可以将任意 HTML 添加到请求对象。
减轻这种情况的标准方法是什么?我能想到的当前选项是:
- 仅允许带有
X-Requested-With: XMLHttpRequest
标头的请求来阻止依赖对我的服务的非 ajax 请求的攻击 - 发送内容类型的响应
application/json
并希望浏览器拒绝将其呈现为 HTML - 在响应中编码不安全的字符(我该怎么做?使用 \uxxxx?)
我一直无法找到具体的参考资料。