类型: 安全缺陷
内容嗅探是指应用程序将获取到的不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户。
@Path("/user")
@Produces("application/json")
public class User {
@GET
public String setName(@QueryParam("param") String name) {
return "{'name': '" + param + "'}";
}
}
如果攻击者所发送请求的name参数设置为 ,则服务器将生成以下响应:
HTTP/1.1 200 OK
Content-Length: 88
Content-Type: application/json
Connection: Closed
{‘name’: ‘‘}
尽管响应将其视为JSON文档,但旧浏览器仍可能尝试将其呈现为 HTML文档,使其容易受到跨站脚本攻击。