将“HttpOnly”属性添加到所有会话cookie

时间:2012-02-29 06:04:51

标签: java security http session

我的网站被审核时出现以下错误。我使用jsp,servlets,java类开发了我的网站。

  

会话Cookie中缺少HttpOnly属性

安全风险

  

可以窃取或操纵客户会话和cookie,这可能是        用于冒充合法用户,允许黑客查看或更改用户记录,       并以该用户身份执行交易

原因:

  

Web应用程序在没有HttpOnly的情况下设置会话cookie   属性

补救任务:

  

将“HttpOnly”属性添加到所有会话cookie

我在点击提交按钮时将java安全令牌作为隐藏参数传递。如何在该令牌中添加此HttpOnly属性?

2 个答案:

答案 0 :(得分:12)

HttpOnly属性设置在Cookies上,这些属性(通常)从服务器传递到客户端,而不是从客户端传递到服务器。 HttpOnly不是您可以在表单或表单参数上设置的属性。这里客户端是浏览器,服务器是运行Java应用程序的Java EE服务器。

Cookie通常由服务器创建,传递给浏览器然后传回。现在可以使用JavaScript创建和操作Cookie,这可能会有所帮助,但也可能是一个安全漏洞。所以an HttpOnly Cookie is only accessible by the server,或者换句话说,客户端JavaScript无法访问它,从而保护您的网站免受某些形式的XSS攻击。因此浏览器将存储并返回一个HttpOnly Cookie,但它不会改变它或允许您在客户端上创建它;必须在服务器上创建HttpOnly Cookie。

如果您正在使用JSP,那么您的服务器可能会自动创建Cookie来为您管理会话;这是您需要设置HttpOnly属性的cookie。 The method to set HttpOnly on your SESSIONID Cooke will be container specific.

答案 1 :(得分:2)

你能在会话cookie中设置“HttpOnly”属性吗?

我发现此代码在https://www.owasp.org/index.php/HttpOnly

上执行此操作
<session-config>
 <cookie-config>
  <http-only>true</http-only>
 </cookie-config>
<session-config>