通过密码

时间:2015-06-10 07:26:52

标签: javascript php

我正在尝试创建一个受密码保护的网站。在这里我想做的是,如果用户第一次访问我的网站然后需要插入密码来访问我的网站。他们第一次输入密码时可以自由访问我的网站。

我就是这样做的javascriptphp

<?php if($page == 'index'): ?>
    <script language="Javascript">
            //prompt.
            var password;
            var correctPass = "123456"; 
            password = prompt("Enter in the password:","");

            if(password == correctPass) {
                    alert('click OK to view this site');
            } else {
                    window.location = "http://google.com"
            } 
            //->
    </script>               
<?php endif; ?>

这是有效但我的问题是如果用户再次进入索引页面,他们需要插入密码。

任何人都可以告诉我如何解决这个问题。 谢谢。

3 个答案:

答案 0 :(得分:6)

不要在JavaScript中执行此操作。任何人都可以查看您的源代码并查看密码。用PHP检查密码。然后使用$_SESSION变量来保存您网站上的状态。您可能还希望使用$_COOKIE变量进行长期访问,但在大多数情况下,密码访问通常只需$_SESSION本身。{/ p>

另一种方法是使用您的Web服务器。例如,如果您使用的是Apache,则可以在网站的根目录下创建.htaccess文件,以获取名称和密码。这样你甚至不需要编码任何东西。

要执行第二个选项,请在Web目录的根目录中创建名为.htaccess的文件。在文件中将其放入:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /opt/passwords/.htpasswd
Require valid-user

(其中/ opt / passwords是您的网络目录之外的目录位置。它可以在您想要的任何地方,您只是想确保它不在您的网络目录中的任何位置(否则它将可供公众查看) )。

在该目录中,创建一个名为.htpasswd的文件。此文件将只使用用户名和加密密码。此页面允许您使用密码加密创建您的姓名:http://www.htaccesstools.com/htpasswd-generator/。只需将其粘贴到.htpasswd文件中即可。

话虽如此,如果您只使用http而不是https,则可以拦截您使用的任何密码,但如果您之前没有使用https设置https有点困难。

答案 1 :(得分:1)

这不安全。用户可以禁用JS。

正确的方法之一是使用http auth

答案 2 :(得分:0)

首先是你把普通密码放在java脚本本身? 从来没有那样做也

if($ page ==&#39; index&#39;)

始终构造为true,因此逻辑无法使用cookie或会话

相关问题