所以我刚刚注意到互联网银行网站之一正在将会话 ID 作为 url 参数传递。 (见下图)
我以前没有在任何地方看到“;”在 url 中,在本例中它位于“private;”之后。
1)这个“;”有什么用?
2)为什么互联网银行(需要成为互联网上最安全的地方)将会话ID作为url参数传递?
起初,我以为他们这样做是因为有些用户不允许使用 cookie,但话又说回来,如果他们允许,就使用 cookie,如果不是 - url,但我确实允许使用 cookie,所以显然情况并非如此。
3)我想那么他们应该有一些其他的安全措施?他们可能是什么?
4) 如果一个人知道其他人的有效会话 ID,他可以做什么?
据我所知,如果您知道该 id,您可以很容易地登录其他人的会话,因为编辑 cookie 并不难,并且将该会话 id 作为 url 参数传递更容易,特别是如果您有类似以下内容:
session_id($_GET[sessionid]);
Thanks!
1)您应该询问您的红框所覆盖的应用程序的设计者。 URL 可以是任何你想要的;的公约key=value&key2=value2
就是这样——一个约定。在本例中,它是 Java,它通常使用以下约定;jsessionid=....
为其 SID。
2)这不是that big一笔交易。普通用户无法像复制粘贴 GET 参数那样复制粘贴 cookie,但高级用户可以做任何他们想做的事情(使用 Mechanize、wget
, curl
以及其他非浏览器方式,甚至浏览器扩展)。如果您允许某些用户使用,而不允许某些用户使用,那么这并不是真正的安全预防措施,不是吗?基本上,cookie SID 会让攻击变得更加困难,但这就像把你的前门钥匙放在垫子下面 - 绝对不能保证你的门安全。此外,cookie 在选项卡之间共享:如果某个网站希望您同时使用两个帐户登录,则无法使用 cookie 来实现。
3)服务器端安全,是的。一种有效的对策是一次性 SID(每次访问页面时,服务器都会从当前 SID 读取会话,然后使用新的 SID 为下一个请求启动一个新会话)。一个不太有效但仍然很好的方法是验证其他信息的一致性(例如 - 仍然相同的 IP?仍然相同的浏览器?)
4) 是的,如果您知道某人的有效 SID,并且服务器没有充分防止会话固定,您可以“成为”那个人。例如,这可能使攻击者能够用您的钱支付他的账单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)