(我确定我不是第一个遇到这个问题的人,但我无法通过 Google/Stack Overflow 找到太多内容。如果重复,请提前道歉。)
我的站点可以用作 Mp3tag 程序的数据源:它访问我站点上的一个页面,抓取数据,并使用它来标记 mp3 文件。我希望我网站的“vip”成员能够访问更高分辨率的艺术品。
不幸的是,Mp3tag 每次都像一个全新的浏览器:没有 cookie/会话数据,程序无法显示任何类型的“登录”提示。所以我的问题是我需要 [semi-] 安全地对用户进行身份验证而不让他们登录。
我的计划是为每个 vip 成员存储一个简单的 md5 哈希值,让 Mp3tag 在用于访问我的站点的 url 中包含用户名/哈希值,然后让服务器对其进行身份验证。(为了记录,我使用的是 PHP/SQL。)
(注意:我不需要这个超级安全。我不会使用哈希进行任何类型的登录或访问网站上的任何其他内容。最坏的情况应该是有人设法猜到了一个 vip成员的哈希值,然后可以访问高分辨率艺术品——如果这是最坏的情况,我可以接受。)
但是这个简单的散列会在其他地方引起安全问题吗?所有密码都经过散列/加盐处理,使用 PHP 的密码函数等,因此拥有单独的 md5 散列(与密码无关)应该不会导致任何问题,对吧?
其次,有没有更安全的方法来做到这一点?我想我可以添加某种 IP 地址检查,但这是我唯一的其他想法。
但是这个简单的散列会在其他地方引起安全问题吗?
不。
所有密码都经过散列/加盐处理,使用 PHP 的密码函数等,因此拥有单独的 md5 散列(与密码无关)应该不会导致任何问题,对吧?
正确的。这是一个简单的“您拥有的东西”身份验证。它基本上是一个相对容易复制的密钥。不是最强大的机制,但您只是在保护图像,因此不必如此。只要您的实际帐户身份验证使用单独的凭据,您就不会削弱它。
其次,有没有更安全的方法来做到这一点?我想我可以添加某种 IP 地址检查,但这是我唯一的其他想法。
基于 IP 的访问可能非常有效,但当您的客户四处走动时往往会很痛苦。这种级别的保护可能不值得。
您可能会使用更强的哈希值,但如果页面不是通过 HTTPS 提供的,则这无关紧要。
我认为你的想法很好,只是random_bytes()
用作来源,而不是像用户名那样可预测的东西。将其视为他们无法编造的第二个密码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句