类型: 安全缺陷

    内容嗅探是指应用程序将获取到的不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户。

    1. @Path("/user")
    2. @Produces("application/json")
    3. public class User {
    4. @GET
    5. public String setName(@QueryParam("param") String name) {
    6. return "{'name': '" + param + "'}";
    7. }
    8. }

    如果攻击者所发送请求的name参数设置为 ,则服务器将生成以下响应:
    HTTP/1.1 200 OK
    Content-Length: 88
    Content-Type: application/json
    Connection: Closed
    {‘name’: ‘‘}
    尽管响应将其视为JSON文档,但旧浏览器仍可能尝试将其呈现为 HTML文档,使其容易受到跨站脚本攻击。