用于在Perl中登录web控制面板的唯一web浏览器标识ID



web浏览器有一个唯一的ID,可以传递给Perl脚本吗?(就像一个独特的系列-就像你在商店里买的产品一样)

例如:如果我安装了一个web浏览器,这个web浏览器可以为PHP或Perl脚本提供一个唯一的标识ID吗?

我寻找独特的东西的原因是做以下事情:

  1. 我有一个包含用户名和密码的用户数据库。

  2. 将用户名/密码加密并设置为用户web浏览器的cookie,以便用户可以登录和退出我的web应用程序。(如果cookie user/pass正确,登录时加载的每个网页都会查看cookie并授予访问权限)

  3. 如果黑客设法从用户那里窃取加密的用户名和密码cookie,他将能够使用被盗的加密详细信息登录。

如果用户的浏览器都有唯一的id传递,那么我可以记录这些id,并在每次用户使用他的加密用户/传递cookie时匹配它们。这样,如果唯一ID不匹配(之前记录的),那么用户将注销并要求手动再次登录。

在加密的用户/通行证被盗的情况下,黑客将无法进入它,因为唯一的浏览器ID将不匹配。用户/通道cookie是加密的,黑客无法看到用户名或密码。当唯一的浏览器记录的ID不匹配时,web应用程序将要求用户手动登录,黑客将无法手动登录,因为他窃取的用户/通行证是加密的。

使用IP地址是一种可能的解决方案,但这是一个糟糕的解决方案,因为许多(如果不是大多数)ISP为其客户端的互联网连接分配动态IP。

使用时间也不是一个好的解决方案,因为我希望用户一次在同一台计算机上登录数周(如果他们选择这样),以使其方便。


有人有任何解决上述情况的方法吗?

我一直在寻找一种方法来获得一些独特的浏览器,但这似乎是不可能的。这可能吗?

浏览器没有唯一的ID,但是一个好的指纹识别级别是可能的。EFF已经测量过,在最好的情况下,浏览器发送的信息(包括用户代理字符串和其他HTTP标头)代表18.1位熵,这意味着如果你随机选择两个浏览器,你有1个机会在218.1(≈280,000)中它们将具有相同的"指纹"。他们建立了一个网站,在那里你可以估计你的浏览器发送的信息的熵度。

一些网站使用这个。例如,我的银行存储了我最常用的三种浏览器的信息,并在我不使用其中一种浏览器时询问我额外的验证问题。

另一方面,所有这些信息都是完全可欺骗的:如果有人能够进行中间人攻击并窃取cookie,他们也能够窃取浏览器发送的所有标头,并可以重用它们来在您的网站上验证自己。如果浏览器实际上有唯一的id,也会发生同样的情况。

除了使用SSL (https)加密的连接(要求您支付签名证书或创建一个自签名证书,将向您的访问者显示安全警告)之外,您的替代方案是采用更好的实践来防止会话劫持。

首先,将用户名和密码保存在cookie中是不标准的,即使是加密的。你应该做的是,一旦用户登录到你的网站,给他们分配一个随机的,单次使用的会话ID,你会在你的数据库中存储一个过期时间(你可以延长每次用户与你的网站交互),这是一个cookie。

如果你想要更高程度的保护,一个选择是在每次用户发送HTTP请求时更改会话ID 。你也可以存储一个IP地址列表,每个用户用来连接到你的网站,或IP地址掩码(如X.Y.*.*),如果它变化太频繁,让他们验证自己,如果他们从一个不寻常的地方连接。如果你这样做了,问他们"你会在这里再次联系吗?"是一个很好的练习。

不,浏览器没有唯一的ID。没有这样的事情。如果真有这样的东西,那一定是网络广告公司的梦想!

也就是说,如果您通过HTTPS提供站点,则可以向客户端颁发客户端X.509证书。这些将由您的组织进行加密签名,因此相当不可伪造。(虽然很明显,如果有人能进入你客户的电脑,他们可以复制它——任何浏览器ID号都是如此!)一旦安装了证书,每次浏览器向您的网站发出HTTPS请求时,您的网站都可以要求提供其证书,这可以用来验证用户的身份。

您可以使用"Html本地存储"永久地在用户浏览器中存储一些唯一的值(例如:用户id),并且在数据库中存储与用户代理信息相同的值。

然后将本地存储中的数据传递给用户代理信息,并将其与数据库中的数据进行匹配…

// store
localStorage.setItem("myValue", "123-abcd");
// retrieve
var myValue = localStorage.getItem("myValue");

我不确定这种识别用户的方法有多安全,但是Html本地存储应该只能访问来自一个来源的页面(相同的域和协议)。

还有"HTML会话存储",用于在用户浏览器中仅存储一个会话的数据。

我们甚至可以使用localstorage, sessionstorage和cookies来实现这一点。但是当这些数据对用户可见时,最好保持加密

最新更新