首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须管理安全编码合规性评估会话状态

必须管理安全编码合规性评估会话状态
EN

Stack Overflow用户
提问于 2011-07-13 03:15:49
回答 2查看 201关注 0票数 0

最近实施了一项关于安全编码的新公司政策。最初的审计评估表明我在以下方面存在缺陷:

代码语言:javascript
复制
Session state must be managed such that a session will withstand replay-attacks.

我不太确定这句话是什么意思,也不知道为什么我对它不感兴趣。我正在开发一个Java Web应用程序,并按如下方式设置会话:

session.setMaxInactiveInterval(36000);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-13 05:45:41

必须对

会话状态进行管理,以使会话能够经受重放攻击。

这句话太让人困惑了。重新措辞将产生以下结果:

会话管理框架必须保护应用程序不受会话ID重播的影响。

它不那么令人困惑(希望如此),并继续承载着与前者相同的含义(再次希望如此)。

通常,如果要实现自己开发的会话管理框架,而不是依赖于容器提供的框架,则应用程序的会话管理功能很可能容易受到重放攻击。

会话重放攻击将涉及在会话过期后在请求中重放会话ID的场景。编写良好的会话管理框架会识别出所提供的会话ID不是有效的会话ID。但是,有漏洞的会话管理框架会接受现已过期的会话ID,并重新创建会话的内容。在更糟糕的情况下,会话管理框架在会话到期时根本不会破坏会话,从而导致会话ID重放导致请求被处理的情况。

必须记住,即使是应用程序的普通用户,如果他们能够在不登录的情况下浏览到应用程序中受保护的页面,也可能无意中执行会话重放攻击。这表明应用程序的身份验证和会话管理功能失败,因为理想情况下,应用程序应该只允许用户在身份验证成功后浏览受保护的页面,这将产生一个令牌(会话ID),该令牌可以在特定持续时间内用于访问站点,而无需进一步的身份验证。如果使用持久化cookies进行身份验证,则可能无意中引入了一个漏洞。

如上所述,可以通过以下方式保护任何应用程序免受会话重放攻击:

  • 确保您使用的是容器提供的会话管理功能。从session.setMaxInactiveInterval的使用来看,我会假设您就是它。但是,为了确保这一点,请验证您是否使用其他方法创建会话ID,或者验证您使用的标识符是否等同于会话ID。简而言之,确保您的应用程序仅依赖JSESSIONID cookie的值(或容器中配置的等价物)将会话ID传递给浏览器。此外,验证是否正在使用持久cookie (请参阅上面发布的scenario).
  • Invalidate会话在特定空闲时间后。如果您没有使会话无效,则攻击者有更长的时间窗口来暴力破解会话ID。从会话重放攻击的角度来看,情况更糟,因为攻击者可以随时重放受损的会话ID,但仍然可以访问有效的用户会话。您还可能希望重新访问在session.setMaxInactiveInterval中为当前使用的值指定的持续时间为10小时。我会认为这是不安全的。大多数应用程序不需要超过30分钟的会话过期滚动窗口,10分钟是高值apps.
  • Destroy服务器端会话及其内容到期时的推荐值。在servlet容器中,这通常是通过在注销页面/链接中调用session.invalidate()来完成的。确保首先为用户提供了从应用程序注销的链接,以便可以使用前面提到的API调用处理注销请求以使会话无效。如果不执行此活动,服务器端会话对象将仅在会话到期时销毁(这将在用户处于非活动状态10小时后发生;现在您知道为什么10小时不是一个好主意了)。
票数 2
EN

Stack Overflow用户

发布于 2011-07-13 03:30:00

这是与会话劫持类似的事情。其中身份验证令牌由黑客持有以便在稍后阶段登录。

在我的项目中,我添加了一个简单的过滤器,它执行以下操作。

响应的每个jsp页面都将被赋予一个名为id的属性(该标记是使用UUID()生成的。在会话中放置相同的令牌。

当页面发布时,过滤器(配置为过滤所有请求)检查这些令牌是否相等&仅当这些值匹配时才继续。

我们还在会话和数据库中添加了时间戳,无论何时提交页面,我们都会使用db检查会话中的时间戳。如果数字在10毫秒内,则请求通过,否则用户将被重定向...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6669769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档