客户端的公共IP地址是否是良好的安全令牌?

如何解决客户端的公共IP地址是否是良好的安全令牌?

| 我的网络应用程序有一个秘密的地方,只有某些人可以使用。当用户登录到我的秘密场所时,我会尝试从他们那里收集尽可能多的信息,将其连接起来,进行哈希处理,然后以cookie的形式发送。信息,例如:用户代理,IP地址,用户密码,以及更多信息... 当客户端请求任何内容时,我将重新生成所有这些内容,对其进行哈希处理,然后将其与客户端发送给我的Cookie进行比较。 如果有人窃取了Cookie,则他们可能会有与合法登录的人不同的User-Agent,并且哈希值不会匹配,不会让他进入。 如果某些更老的家伙伪造了所有的HTTP标头,我将看到IP地址不匹配,并且哈希值不匹配..不允许他进入。 问题出在哪里,如果我的合法登录客户失去了互联网连接,并且由于他/她的ISP租用动态IP而与另一个IP地址重新建立连接,该怎么办。我当前的算法将说“啊!这是攻击者!请关闭此会话!”。 这个秘密的地方更好,即使不会被有效的用户打扰,并且由于出于某种原因,过去几周互联网连接是断断续续的,我的用户感到不舒服的事实是,该应用程序要求他们每次IP更改时都必须重新登录。 我应该放弃IP验证吗?     

解决方法

        与简单易懂的安全措施相比,试图通过模糊来强加安全性或通过复杂性来增强安全性往往更容易被利用。 您已正确确定将会话固定到IP可能会损害用户体验。您必须确定这种不便(特别是对于TOR或其他匿名化和移动网络用户而言)是否值得额外的安全性。 请记住,可以拦截您的服务器与客户端之间的通信的攻击者也可能会与客户端的IP地址进行通信。如果他在客户端的LAN中,这是微不足道的,否则仍然很简单。因此,从本质上讲,您是在防御几乎完全没有能力的攻击者,但他们可以拦截相对安全的高带宽网络(本地安装或核心Internet路由器)中的网络流量。 如果安全确实是一个问题-除非您经营的是银行,大型公司或类似军事的组织,否则通常不是这样-最好使用SSL,检查网站中的常见漏洞并保护客户端计算机的安全。     ,        不能。IP地址不是一个好的安全令牌,因为它可以被欺骗。 它可以用作指示尝试模仿的信号,但是正如您所指出的,由于IP不稳定,因此它并不总是一个完美的指示器。随着用户从一个无线网关移动到另一个无线网关,从有线连接移动到无线网络,在隧道连接到Intranet时更改代理设置等,它们往往会发生变化。 它还可能会歧视任何尝试使用Tor或其他安全浏览方案的人。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?