我正在测试一个 Web 应用程序的安全漏洞,我遇到了以下两种情况。
我相当肯定案例 2 是 Web 应用程序中的一个安全漏洞。我想知道案例 1 在技术上是否也可以被视为 Web 应用程序中的漏洞。如果是这样,有什么方法可以解决这个问题?
最佳答案
案例1.
系统管理员可以恢复您的 session 并不是真正的安全漏洞,因为系统管理员通常可以恢复密码哈希并尝试破解它们或创建一些安全漏洞以针对其用户使用。
尽管考虑到系统管理员可能会尝试恢复您的 session 可能是无害的,但在上游可能并非如此(在有人连接的互联网的其余部分),并且通常认为实现所有用户登录/敏感事件是一种好习惯在 HTTPS 中。
只是对上面的回复发表评论,当通过 HTTPS 使用 cookie 时,不可能将它们从外部恢复到计算机(如中间人)。
案例2。
这并不是真正的安全漏洞。在考虑这种情况时,您假设情况 1,首先不应该发生这种情况(有人嗅探您的 cookie)。
笔记:
除了通过 HTTPS 保护登录/敏感事件之外,最好对同一域中的整个网站进行加密,因为如果同一域中的某些页面未加密,则可以向客户端注入(inject)流量以暴露其 cookie。
当用户没有主动注销时(单击 webapp 上删除标识的按钮),很难从服务器中删除用户标识。如果用户只是关闭了页面,服务器并不知道用户已经登录,并认为用户标识仍然有效。
您可以将用户与 ip 相关联,这使攻击者难以嗅探 cookie 并从不同的 ip 使用它们,但它在普通用户子网中不起作用,因为使用 NAT,子网中的所有机器都具有相同的外部 ip。
笔记:
使用自签名加密是有危险的。尽管它可以保护用户免受外部嗅探,但有人很容易欺骗粗心的用户登录您的应用程序的欺骗版本。我已经通过 WAP 上的强制门户网站做到了这一点。
关于session - 网络应用安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132110/