我的网络应用程序有秘密地点只允许一些人使用。当用户登录我的秘密地点时,我会尝试尽可能多地从他们那里收集信息,连接它,哈希并将其作为cookie发送。信息如:用户代理,IP地址,用户密码,再加上一些......
当客户端请求任何内容时,我会重新生成所有这些内容,哈希,并将它们与客户端发送给我的cookie进行比较。
如果有人窃取了cookie,他们可能会有合法登录的人使用不同的用户代理,而且哈希不会匹配,不会让他进入。
如果一些老聪明的家伙假装所有的http标头,我会看到IP地址不匹配,哈希不匹配..不让他进去。
我的问题存在于哪里,如果合法登录的客户端丢失了互联网连接,并且在他/她的ISP租用动态IP时将其与另一个IP地址重新建立,我该怎么办?我当前的算法会说“啊哈!这是攻击者!关闭此会话!”。
如果没有中断有效用户,这个秘密地方会更好,而且由于某些原因,互联网连接在过去几周一直处于断断续续状态,我的用户发现应用程序要求他们每次重新登录时都会感到不舒服IP变更。
我应该放弃IP验证吗?
答案 0 :(得分:3)
尝试通过复杂性或安全性来强加安全性通常比简单易懂的安全措施更容易被利用。
您已正确识别将会话修复为IP可能会损害用户体验。您必须确定这种不便(特别是对于TOR或其他匿名化和移动网络用户)是否值得额外的安全性。
请记住,可以拦截服务器与客户端之间通信的攻击者也可能与客户端的IP地址进行通信。如果他在客户的局域网中,这是微不足道的,否则仍然很简单。所以从本质上讲,你是在防御几乎空洞的攻击者,这些攻击者完全无能,但可以在相对安全的高带宽网络(本地安装或核心互联网路由器)中拦截网络流量。
如果安全确实是一个问题 - 除非您经营银行,大型公司或军事组织,否则通常不会更好地使用SSL,检查您的网站是否存在常见漏洞,以及保护客户端计算机。
答案 1 :(得分:1)