【发布时间】: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