客户端登录安全吗?

问题描述 投票:0回答:3

客户端是否可以登录某个页面,例如example.html,通过使用散列等来保证安全吗? 我问这个问题主要是出于好奇,但可能有一些用例,例如 GitHub Pages 的 CMS 或驻留在浏览器内但需要一种方法来验证用户身份的任意无服务器应用程序。

例如,如果您有文件 x.txt,其中存储了密码的加盐哈希,并且您将密码的输入与它进行比较,那么您本身就具有良好的安全性,当然,如果密码足够强的话。 但是,由于某些恶意的人可能会删除您的 JavaScript,因此它毫无价值,因为可以绕过身份验证。

我的想法是存储带有密码哈希的 cookie,并且仅显示不需要登录的网站。如果需要的话,直接显示空白即可。 再一次,js 可以被删除,因此它是无用的。

javascript security authentication
3个回答
2
投票

如果您知道某人是谁(身份验证),那就太好了,但您最终想要的是有选择地阻止或允许访问特定信息(授权)。如果您在客户端进行授权,服务器将必须向客户端泄露所有信息,并且客户端有选择地决定显示或隐藏哪些信息。好吧,但是信息已经在客户端上,并且没有技术上的可能性可以阻止用户访问它,即使它是“在幕后”。

因此,即使纯粹的客户端身份验证是可能的(出于同样的原因,这是不可能的),无论如何,您最终都会在客户端授权上失败。


1
投票

但是,由于某些恶意的人可能会删除你的 JavaScript,因此它毫无价值,因为身份验证可以被绕过

完全正确。如果隐藏信息已经在客户端上,则恶意用户可以通过编程绕过逻辑来访问它。

要解决此问题,您需要将隐藏信息存储在服务器上,需要特定的凭据才能访问它。

解决此问题的最简单方法(无需托管自己的服务器(据我所知))是 Firebase 身份验证。将您隐藏的内容放在 Firebase 上并利用其身份验证(使用 Google 登录)。


0
投票

我不假思索地不支持“这是不可能做到的”。如果您稍微想一下,当您将锁定的 zip 文件下载到您的 PC 时,它需要密码才能解密。密码输入和加密文件的实际解密这两件事都是在客户端完成的。

在您的情况下,如果您的 x.txt 或任何其他锁定文件被加密(因此在客户端中加密到达),则客户端只知道加密文件(这是垃圾)。只有当用户提供正确的预设密码(以 HTML 或 javascript 登录表单?)时,文件才会被解密,并且对客户端有意义。

在这里,我正在讨论一个应用程序(可以是 javascript),用于根据客户端提供的(预设)密码在线解密文本文件(意味着在浏览器的客户端)。

这样就可以了。而且它对机器人来说也是安全的,因为它们只能访问垃圾页面。

© www.soinside.com 2019 - 2024. All rights reserved.