【问题标题】:Making a Username and Password with Javascript使用 Javascript 创建用户名和密码
【发布时间】:2016-09-15 19:42:26
【问题描述】:

我看到了与此类似的其他问题,但我尝试了答案,但它似乎没有达到我想要的效果(如果有但我看不到它,请告诉我在 cmets 中。我对此很陌生)。

我想用密码保护一个网站(这是一个个人家庭网站,所以我不担心加密或任何事情,除非用 javascript 超级容易做到),这样只有我的家人才能上。我希望密码是个性化的。

HTML 代码

<form id="usr-psswd">
  Name: <input type="text" name="name" id="name">
  Username: <input type="text" name="usr" id="usr">
  Password: <input type="text" name="psswd" id="psswd">
  <input type="button" onclick="submission()" value="Submit">
</form>

脚本代码

function submission(){
  var name = document.getElementByID = "name";
  var psswd = document.getElementByID = "psswd";
  var usr = document.getElementByID = "usr";

  var name = new Array();
  var usr = new Array();
  var psswd = new Array();
}

我的问题:我如何让 javascript 将输入放入保留在页面上的数组中,以便当您尝试访问 index.html(密码保护所在的位置)时这样他们就不必每次都进行设置?

另外,如果足够简单,我如何通过加密运行多个密码并将其保存在网页上,以便如果有人碰巧进入这里密码是安全的?

是的,我意识到 var name var psswd 和 var usr 重复了两次。那是因为我现在懒得给它们命名不同的东西。我只需要知道如何将var name = document... 放入var name = new...。谢谢!

【问题讨论】:

  • 密码永远不会安全,页面也不会安全,因为每个可以访问页面的客户端也可以公开访问加密密码和您用来加密它们的方法。此外,任何人只需在浏览器控制台中输入 JavaScript 命令,即可轻松完全绕过身份验证。这就是身份验证在服务器端完成的原因。至少看看您是否可以通过 HTTPS 在 Web 服务器上配置运行磨坊 http 基本身份验证,至少总比没有好。
  • 记住客户端内容的唯一方法是使用全局变量。但这肯定不是您想要在其中保存密码的内容。您应该将此类内容保存在 php SESSION 或其他内容中。顺便说一下,您的 submit() 函数也是错误的。要获取表单内容,您可以说: document.getElementById("name");然后你用数组覆盖它?
  • 如果您不打算让它更安全,为什么还要包含密码?这就像在您的前门上贴一条胶带,但没有锁定它,理由是只有您的朋友和家人会来访,而胶带会使某人稍微更难进入。
  • @James 你提出的建议比没有身份验证的网站更不安全。人们会重复使用他们的密码,而这些密码将非常容易获取。此外,人们可以在浏览器上禁用 JavaScript 并访问该网站。我建议您要么不进行身份验证,要么进行服务器端身份验证。
  • @James:您提议的方式没有意义,因为任何人都可以检索用户/通行证并访问该站点,因此它使其无用,您还暴露了密码通过这样做向世界展示,就像鲁道夫所说,如果有人重复使用密码,他们就会被搞砸。此外,即使您只将 URL 分享给您的朋友/家人。该网站仍然是公开的,因此任何人都可以访问。

标签: javascript arrays html passwords


【解决方案1】:

我知道您说过您想对网站进行简单的身份验证,但是在 JavaScript 中执行此操作是不安全的,并且用户名/密码很容易检索。

如果你想做一些非常简单和快速的事情。我建议你使用.htaccess进行身份验证:

为此,系统需要两个文件——.htaccess 文件和.htpasswd 文件:

.htaccess 代码:

AuthType Basic
AuthName "restricted area"
AuthUserFile /home/user/html/protect-me-dir/.htpasswd
require valid-user

上面的代码在根级别保护了一个名为protect-me-dir 的目录。 AuthUserFile 值始终特定于您的主机配置。如果您不知道该值应该是什么,请执行 phpinfo() 并找到 DOCUMENT_ROOT 值。


.htpasswd 代码:

your_username:your_password
another_user:another_password
you_get:the_idea

.htpasswd 文件包含允许用户的用户名和密码。每行一个。


否则,我可能会做一些更有趣的事情,例如使用 PHP 和数据库的组合进行正确的登录。

我希望这会有所帮助。

【讨论】:

  • 1. MD5 是散列而不是加密。加密是可逆的,哈希不是。 2. MD5不安全。但是,除此之外,基本身份验证可能是您可以拥有的最简单的东西,它也很有用。它并不漂亮(毕竟它是基本的),但它可以防止大多数未经授权的访问尝试,而 JS “安全性”很乐意让这些尝试通过。
  • 对,你对 MD5 的看法是正确的,我会修改那部分......另外,我提到 .htaccess 的原因是因为在我看来他正在寻找基本身份验证。 :D
  • 我同意 - 基本身份验证确实是 OP 想要的。
  • 这是我正在寻找的,但我对 php 一无所知。有没有关于这个的分步教程,或者你能给我一个吗?如果必须,我会问一个不同的问题。
  • @James 使用 .htaccess 和 .htpasswd 与 PHP 无关。
猜你喜欢
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
相关资源
最近更新 更多