我们认为Stack Overflow不仅应该是非常具体的技术问题的资源,而且还应该是关于如何解决常见问题变化的一般指导原则."基于表单的网站身份验证"应该是这种实验的一个很好的主题.
因此,使用Firesheep,公共Wi-Fi中的每个人现在都有一键式会话劫持工具.
它的工作方式 - 据我所知 - 它只是捕获所有流量并抓取会话cookie(因此它不会窃取密码).
根据我的理解,这也意味着HTTPS安全登录不能单独解决这个问题,因为进一步的HTTP流量将再次以明文形式包含会话Cookie.
由于NAT将会话绑定到特定IP地址是无用的,并且将其绑定到用户代理很容易欺骗.
那么100%HTTPS始终是阻止此类会话劫持的唯一方法吗?人们不能简单地嗅探整个HTTPS流量,包括握手,还是这个东西安全?(我正在考虑重播攻击,但对该领域一无所知.)
当然,不使用公共/开放式Wi-Fi网络是更好的选择,但我仍然对网站开发人员可以做些什么来保护他/她的用户感兴趣.
是否存在客户端/用户/黑客$_SESSION自己设置变量的情况(不包括在服务器计算机上运行的恶意软件.我主要是通过浏览器来表示)?
我问的原因是因为几天前我问过这个问题.从那以后,我对这个问题变得非常困惑,但我对会话固定和劫持有了更好的了解.
尽可能简单地说,如果我用类似的东西验证每个页面isset($_SESSION['validated']),它是否安全?
让我们考虑一下服务器对用户的信任.
会话固定:为了避免固定我session_regenerate_id()只在身份验证中使用(login.php)
会话sidejacking:整个站点的SSL加密.
我安全吗?
我最近一直在阅读关于会话修复/劫持的内容,并理解这个理论.
我不明白的是如何在实践中利用它.您是否必须篡改浏览器才能使用被盗的Cookie?将其附加到URL并将其传递给Web应用程序?
或者你会编写某种自定义脚本来使用它,如果是这样,它会做什么?
我不是试图向这个或者例子寻求帮助,但我正在努力学习更多并理解.任何帮助表示赞赏.
在过去的几天里,它一直在我的脑海中运行,但我读了一些关于如何使PHP会话更安全的文章.几乎所有这些文章都说你需要在会话中使用额外的盐来保存useragent.像这样的东西:
$fingerprint = md5('SECRET-SALT'.$_SERVER['HTTP_USER_AGENT']);
Run Code Online (Sandbox Code Playgroud)
盐会使攻击者更难以劫持或任何会话.但为什么每次检查时都加盐:
md5('SECRET-SALT'.$_SERVER['HTTP_USER_AGENT']) == $_SESSION [ 'fingerprint' ]
Run Code Online (Sandbox Code Playgroud)
因此,为什么盐会使它更安全,因为攻击者仍然只需要使用者(相对来说是一小组不同的使用者)和sessionid?
可能是我忽略的小东西,但无法弄明白,让我疯狂哈哈
谢谢!
security ×5
php ×3
session ×3
article ×1
cryptography ×1
encryption ×1
http ×1
https ×1
salt ×1
user-agent ×1