1

我正在提高我网站上的安全性,因为我的一些用户质疑安全性,但我只能说没有人可以查看您的密码(使用 SHA-512 和 md5 进行双重哈希),但他们回复了,但是什么如果他们进入我的帐户,他们可以更改我的密码并使用我的帐户。

因此,我将提高我的安全性,就像 Steam 的安全性一样,如果没有他们向您发送随机密钥,您将无法登录到新计算机。我正在想办法做到这一点,所以我得到了它,所以它会在我的数据库中存储一个小数组,其中包含用户登录的所有计算机。

但是我需要一些数据,以便我的脚本可以检查它,但我不太确定是什么数据,我在考虑 IP 地址,但是如果没有外部来源,例如我的 ip和其他类似网站是什么,你就无法获得它。我需要一些不会随着同一浏览器/计算机而改变的数据。

所以问题是,我需要一些他/她正在使用的浏览器独有的数据,但如果他/她在不同的计算机或浏览器上,它确实会改变。

4

2 回答 2

0

可以在 IP 级别的 Web 应用程序中实现一些安全性。事实上,例如,在我工作的公司中,只能从连接在公司网络中的设备使用“管理员”帐户登录 - 给定的 IP 地址范围。

如果你想为每个用户实现这种技术,你会遇到很多问题,因为你的用户可能在某个代理服务器后面,即在每次登录时或在给定的时间间隔内更改他们的 IP 地址。

它们是不同类型的代理,您可以检测用户何时使用其中一些代理,然后检索用户的真实 IP 地址 - 检查此 HTTP 标头:HTTP_X_FORWARDED_FOR、HTTP_VIA 和 REMOTE_ADDR EXPLAINED以及更具体的此X-Forwarded-For一。

无论如何,它们是很多隐藏 IP 地址的技术,例如代理服务器和HideMyAss等应用程序,这使整个事情变得非常简单。

无论如何,即使您的用户向您发送一组特定的电子邮件地址,您将存储在您的数据库中并检查用户是否使用它们连接到您的应用程序,同样的滥用可能性,使用您的帐户(作为密码)面临再次。IP 地址将只是数据库表中的另一个字段。因此,如果任何人都可以更改密码,他也许可以将另一个新 IP 添加到您正在检查的 IP 列表中。

我认为最好的办法是只为您的管理员帐户实施这种 IP 安全性。然后,您和您的客户就会平静下来,没有人可以加入它并更改他们的密码。

于 2012-10-28T08:32:46.630 回答
0

不知道你有没有很多用户,我在实际应用中从来没有这样做过,但是很久以前玩过bouncycastle。有一个类似的问题,第 3 方提供商通过 IP 过滤向外部公司提供服务,但迪拜办事处被拒绝,因为一些代理进入那里,不提供转发并且具有广泛的 IP 范围。

这是我正在考虑但从未应用的选项:

为每个/所有/组的客户端制作一个自签名密钥以导入并在您的服务器存储中导入该公共部分,然后不允许任何人在那里,除非他们有一个在您的服务器密钥库中导入的密钥。

也许如果您为使用代理的公司提供服务,您可以让代理提供密钥。

于 2012-10-28T09:37:55.887 回答