密码保护页面

Lou*_*rev 2 html javascript

我从另一个网页“http://www.javascriptkit.com/script/cut10.shtml”获取了以下代码。

<SCRIPT>
function passWord() {
    var testV = 1;
    var pass1 = prompt('Please Enter Your Password',' ');
    while (testV < 3) {
        if (!pass1) history.go(-1);
        if (pass1.toLowerCase() == "letmein") {
            alert('You Got it Right!');
            window.open('protectpage.html');
            break;
        } 
        testV+=1;
        var pass1 = prompt('Access Denied - Password Incorrect, Please Try Again.','Password');
    }
    if (pass1.toLowerCase()!="password" & testV ==3) history.go(-1);
    return " ";
}
</SCRIPT>
<CENTER>
<FORM>
<input type="button" value="Enter Protected Area" onClick="passWord()">
</FORM>
</CENTER>
Run Code Online (Sandbox Code Playgroud)

仅在第二次输入密码时有效,第一次输入密码时无效。当您输入密码时,它会提示您密码错误,提示您再次输入密码,然后就可以通过。我需要一个脚本来提示我输入正确的密码,以防我输入错误的密码。由于我是 JavaScript 初学者,有人可以帮助我编写代码吗?

Luk*_*uke 5

访问该链接时,您的代码似乎可以正常工作。

我知道你正在学习。不过,您不应该进行这样的身份验证,因为您并没有真正保护任何内容。任何人都可以通过使用任何浏览器中的“查看页面代码”选项(通常右键单击页面)来阅读源代码。这意味着任何人都可以轻松获取您的密码

对于真正的身份验证,您应该使用服务器端语言(例如 PHP)或由 Web 服务器配置的HTTP 摘要身份验证。Digest 有点过时了,因为它使用 MD5,但它比你正在做的好一百万倍。

有关使用 Apache Web 服务器设置 HTTP 摘要的更多信息,请参阅:

http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html

对于 Nginx 执行同样的操作:

http://wiki.nginx.org/HttpAuthDigestModule

HTTP基本身份验证也可以工作,但它以纯文本形式从用户浏览器传输密码。通过 HTTP 摘要,密码会被散列化

知道您正在学习 JavaScript,最好的选择是配置您正在使用的 Web 服务器。由于大多数网络托管服务都使用 Apache,因此您很可能可以使用.htaccess 文件。您可以搜索“.htaccess http 摘要”以获取有关如何进行设置的教程。

某些网络托管服务具有控制面板,该面板具有使用摘要/基本身份验证保护目录的功能。在cPanel中,这很常见,它被称为“密码保护目录”

如果您更高级,我建议您使用 PHP 来完成,但这是一个相当复杂的主题。