类型: 安全缺陷

    程序从一个不可信赖的数据源获取数据,未进行验证就置于HTTP头文件中发给用户,可能会导致HTTP响应截断攻击。
    例如:下列代码片段中,程序从HTTP请求中获取author的值,并将其设置到HTTP响应文件的cookie中。

    1. String author = request.getParameter(AUTHOR_PARAM);
    2. ...
    3. Cookie cookie = new Cookie("author", author);
    4. cookie.setMaxAge(cookieExpiration);
    5. response.addCookie(cookie);

    如果请求中提交的是一个Jane Smith字符串,那么包含该cookie的HTTP响应可能表现为以下形式:

    HTTP/1.1 200 OK

    Set-Cookie: author=Jane Smith

    那么如果攻击者提交的是一个恶意字符串,比如Wiley Hacker\r\nHTTP/1.1 200 OK\r\n…,那么HTTP响应就会被分割成以下形式的两个响应:

    HTTP/1.1 200 OK

    Set-Cookie: author=Wiley Hacker
    HTTP/1.1 200 OK

    这样第二个响应已完全由攻击者控制,攻击者可以用所需的头文件和正文内容构建该响应实施攻击。