如何在没有会话/cookie/登录的情况下[半]验证用户?

约翰·辛普森

(我确定我不是第一个遇到这个问题的人,但我无法通过 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有任何用户/密码登录的情况下访问此 Samba 共享?

XRDP:如何在没有本地用户登录的情况下获得远程终端服务?

在Laravel中如何在没有DB的情况下验证用户身份?

如何在没有身份验证的情况下安全地检测用户

ASP.NET核心。没有身份用户帐户的情况下如何创建身份验证Cookie?

laravel 4:如何在没有用户名和密码的情况下登录用户

如何在没有用户(只有root)的情况下登录通用Linux发行版?

如何在没有注册或登录尝试的情况下检查用户是否存在于 firebase auth 中?

如何在没有用户登录的情况下在Facebook粉丝页面上获得见解

如何在没有公钥的情况下登录ssh?仅使用用户名和密码

AWS Mobile Hub-如何在没有情节提要的情况下实施用户登录

如何在不登录的情况下使用Cookie创建随机用户

在没有Graph API的情况下,如何在C#Azure B2C身份验证中获取当前登录用户的用户名和电子邮件地址?

如何在没有gksudo / gksu / pkexec的情况下在X11中对用户进行身份验证

如何在没有客户端身份验证的情况下从服务器认证Firebase用户?

如何在没有IIS / WCF的情况下通过REST API调用对Windows用户进行身份验证?

Laravel:如何在没有数据库的情况下对用户进行身份验证

如何在laravel 5.3中在没有auth:api中间件的情况下对用户进行身份验证?

Windows如何在没有网络连接的情况下对域用户进行身份验证?

如何在没有用户交互的情况下对 Azure Active Directory 进行身份验证?

如何在不验证(登录/注册)用户的情况下保护Firebase Realtime数据库?

如何在不要求用户登录Laravel的情况下验证电子邮件

如何在不登录的情况下在页面加载时对用户凭据进行身份验证

在没有用户的情况下创建会话

如何在没有密码和没有authorized_keys的情况下登录?

在没有 cookie 的情况下处理身份验证

如何在没有登录按钮的情况下初始化Google登录?

Android Facebook登录:如何在没有XML的LoginButton的情况下使用LoginManager检查登录

如何避免在没有验证电子邮件的情况下登录 asp.net mvc