我有一个 RESTful API 可以同时返回JSON和XML.
说,例如,一个请求被用于诸如一个文档作为这样的伪影的所有评论制成:GET /document/DOCUMENT_ID/comments.json。响应如下所示:
[
{
"created_time": 1304598075,
"text": "<script type=\"text/javascript\">alert(document.cookie)</script>",
"user_id": 2293,
"id": 184124
},
{
"created_time": 1304598043,
"text": "It's over ninethousaaaaaanddd!!!",
"user_id": 2293,
"id": 184122
}
]
Run Code Online (Sandbox Code Playgroud)
在我自己的服务中,第一个评论将在呈现之前进行 XSS 转义。但是当通过 API 访问时,我必须信任 API 的实现者来进行转义。
如果 API 是在通过浏览器呈现的 Web 服务中实现的,则攻击向量是非常真实的。
另一方面,如果 API 是在桌面应用程序或移动应用程序中实现的 - XSS 转义将是一个完全麻烦且不需要的。
我应该转义我通过 API 返回的所有字符串吗?或者我应该实现一个设置,以便在注册第三方应用程序时 API 实现者可以指定他是否想要转义响应?
了解其他人如何处理这个问题会很有趣。
不,你不应该 - XSS 处理应该由实际要显示数据的任何内容来完成。许多第 3 方 ASP.NET 控件已经对其显示的文本实施了 XSS 保护,因此最终可能会出现文本被双重编码的情况。
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |