我不明白为什么我们必须保护cookie和会话,我有一个存储用户名,用户名加密密码的cookie。
我有一个函数,可以随时检查cookie是否与DataBase信息匹配,如果不是,则重定向到登录页面。 但我不明白风险,可以查看此信息以及他可以用这些信息做什么。
任何人都可以向我解释什么是风险?
确切地说,很难量化。 首先,请记住,cookie 在每个请求中都在客户端和服务器之间传输。 这对于有人拦截他们来说可能有很多机会。 假设有人会在某个时候拦截cookies。
在cookie中存储用户名,userid和(加密)密码:
泄漏可能或不可用于恶意目的的信息; 即为了成功登录,你需要一个用户名和密码,并且你在空中高呼CAPTURE ME ,用户名甚至是明文 仅依赖于加密算法对密码的保密性; 如果它变得已知,则有相当的安全问题 由于已知加密密码,因此可以对其进行离线蛮力攻击以揭示加密算法和明文密码; 这种攻击可能是也可能不是纯粹的理论,它存在的事实应该会打扰你 如果完全有可能解密密码,你已经失去了; 密码是一个秘密,只有用户应该知道,即使你想知道密码是什么, 如果你确实知道密码,你有一个巨大的责任来保护它,当然你不希望通过HTTP来回发送它。 →见密码散列 你无法控制任何东西,所有的登录信息都由客户端决定(例如,如果你知道上述任何一种情况已被破解,你会怎么做?) 不会让您更改密码而不会使所有活动登录无效 另一方面,仅使用无意义的会话标识:
在cookies中没有显示有用的信息 没有机会破解或强奸任何有价值的东西 服务器拥有最终的权力,因为会话可以在任何时候被撤销 它更简单(更简单的是安全性总是很好) 使用服务器端状态的完整会话允许您提升权限; 例如要求用户在当前IP的最后x分钟内用他的密码主动登录,以允许他更改他的密码或电子邮件地址→即使会话cookie被劫持也提供安全性 简而言之:会话ID完全不存在攻击面,因为它们本身毫无意义。 用户名,名称和密码提供了一个非常多汁的目标。 从这些基本点来看,会议似乎更具吸引力。 假设一个完美的安全性,否则应该是相当安全的。 但是,你不知道你有什么不安全感,你不会有完美的安全感。 假设这一点,知道这一点,更简单的系统和更少的警告应该总是最好的。
链接地址:
http://www.djcxy.com/p/23667.html
上一篇:
PHP secure session and cookies
下一篇:
Cookies instead of sessions?