在Java中生成内容后,在Apache中转换set-cookie Session Cookie标头

时间:2013-02-20 01:56:05

标签: java apache session cookies

如何使用apache配置获取由java应用程序服务器生成的原始Web页面,并将set-cookie会话标头转换为具有额外标志。

发件人

Set-Cookie:JSESSIONID=f232xxx; path=/moedev-wss; secure

Set-Cookie:JSESSIONID=f232xxx; path=/moedev-wss; secure; httponly

不幸的是我的java代码不能轻易更新,但如果我可以在Apache中更改标题,我的问题就解决了。

注意我已调查过以下模块:

  • mod_headers:无法搜索其他生成器生成的内容。
  • mod_rewrite:不编辑未代理的内容。
  • mod_proxy:不编辑未代理的内容。

为什么我要这样做?简而言之:安全问题请参阅OWASP on the subject

1 个答案:

答案 0 :(得分:0)

在MOD_SECURITY框架中找到答案

在我离开上面的问题后,我想到了apache模块可以提供哪些帮助。

然后我在mod_security上搜索了这些信息。

我找到了Ryan Barnett的优秀文章和规则集。

Helping Protect Cookies with HTTPOnly Flag

上面链接的规则集:

# Identifies SessiondIDs without HTTPOnly flag and sets the "http_cookie" ENV
# Token for Apache to read
SecRule RESPONSE_HEADERS:/Set-Cookie2?/ "!(?i:\;? ?httponly;?)" "chain,phase:3,t:none,pass,nolog"
  SecRule MATCHED_VAR "(?i:(j?sessionid|(php)?sessid|(asp|jserv|jw)?session[-_]?(id)?|cf(id|token)|sid))" "t:none,setenv:http_cookie=%{matched_var}"

# Now we use the Apache Header directive to set the new data

Header set Set-Cookie "%{http_cookie}e; HTTPOnly" env=http_cookie

我要感谢Ryan Barnett和mod_security。

现在我将继续在我的环境中测试此解决方案。