(我肯定我不是第一个处理这个问题的人,但我无法通过Google/Stack溢出找到多少信息。如果是复制的话,提前道歉。)
我的站点可以用作程序Mp3tag的数据源:它访问我的站点上的一个页面,抓取数据,并使用它标记mp3文件。我希望我的网站的"vip“成员能够获得更高分辨率的艺术品。
不幸的是,Mp3tag每次都表现得像一个新的浏览器:没有cookie/会话数据,程序无法显示任何类型的“登录”提示。因此,我的问题是,需要对用户进行半安全的身份验证,而不让他们在中签名。
我的计划是为每个vip成员存储一个简单的md5哈希,让Mp3tag将用户名/散列包含在它用来访问我的站点的url中,然后让服务器对此进行身份验证。(为了记录在案,我使用了PHP/SQL。)
(注:我不需要这个是超级安全的。我不会使用哈希在任何类型的登录或访问网站上的任何其他东西。最坏的情况应该是有人设法猜到vip成员的散列,然后访问高分辨率的艺术品--如果这是最坏的情况,我同意)。
但是这个简单的散列会在其他地方引起安全问题吗?所有的密码都是散列/咸的,使用的密码函数等等,所以有一个单独的md5散列(与密码无关)不应该引起任何问题,对吗?
其次,有更安全的方法吗?我想我可以添加某种IP地址检查,但这是我唯一的其他想法。
发布于 2018-07-05 16:14:17
但是这个简单的散列会不会在其他地方引起安全问题呢?
不是的。
所有的密码都是散列/咸的,使用PHP密码函数等等,所以有一个单独的md5散列(与密码无关)不应该引起任何问题,对吗?
正确的。这是一个简单的“您拥有的东西”身份验证。它基本上是一个相对容易复制的键。不是最强大的机制,但你只是保护一个形象,所以它不必是。只要您的实际帐户身份验证使用单独的凭据,您就不会削弱这一点。
第二,是否有更安全的方法来做到这一点?我想我可以添加一些IP地址检查,但这是我唯一的其他想法。
基于IP的访问可能非常有效,但当您的客户四处走动时,往往会带来真正的痛苦。对于这种程度的保护,这可能不值得。
您可能会使用更强的散列,但如果该页没有在HTTPS上服务,则这与此无关。
我认为您的想法很好,只需使用random_bytes()作为源代码,而不是像用户名这样可预测的东西。把它想象成他们无法弥补的第二个密码。
https://stackoverflow.com/questions/51195467
复制相似问题