如何要求密码查看网站?

时间:2012-11-18 02:20:54

标签: php javascript password-protection

您是否知道要求用户输入指定的密码才能查看您的网站?像这个网站,例如Click。我以为它是.htaccess,但我不想保护任何目录。我只是希望我的朋友能够登录我的网站,而无需为安全问题更改我的目录名称。

3 个答案:

答案 0 :(得分:2)

Apache htaccess听起来就像你需要的那样。您链接到的网站有一个定制的网站登录,可以用PHP或任何网站编码的方式编写。

设置Apache以执行此操作是微不足道的,首先使用htpasswd命令创建密码:

    htpasswd -c .htpasswd dave

然后把它放在.htaccess文件中:

    AuthUserFile /full/path/to/.htpasswd
    AuthType Basic
    AuthName "My Secret Folder"
    Require valid-user

答案 1 :(得分:0)

它通常被称为“登录系统”,它通常还需要一个用户名(尽管不在你的例子中)。 .htaccess与它无关,它应该用PHP或任何其他脚本语言完成。

登录系统通常需要一些输入验证和数据库技能。如果你不拥有它们,我强烈建议你学习一些关于PHP,XSS,Sql Injection,Mysql和PDO的东西。

答案 2 :(得分:0)

通常这是通过服务器端脚本和数据库完成的。 Javascript无法使用,因为无论您对代码进行多少混淆,任何人都可以右键单击并“查看源代码”以查找您的密码。我看到你标记了php。在php中,它相当简单。设置一个HTML表单,其中包含提交的用户名和密码框(通过POST,而不是GET !,否则密码将显示在浏览历史记录和URL栏中)。示例表单如下所示:

    <html>
    <body>
    <form action="login.php" method="post">
        Enter your username: <input type="text" name="user" /> <br />
        Enter your password: <input type="text" name="pass" /> <br />
        <input type="submit" value="Login" />
    </form>
    </body>
    </html>

然后在login.php中:

    <?php
         session_start();

         $db = mysqli_connect("server","db_user","db_pass","database_name");
         $stmt = $db -> prepare("SELECT pass FROM users WHERE username=?");
         $stmt -> bind_param("s",$_POST['user']);
         $stmt -> execute();
         $stmt -> bind_result($result);
         if ($_POST['pass']==$result)
         {
              $_SESSION['auth'] = "yes";
              header("Location: index.php");
         }
         else
         {
               die("Authentication rejected!");
         }
    ?>

然后您需要做的就是将以下代码放在您想要“密码保护”的所有文件的头部:

    <?php
         session_start();
         if (isset($_SESSION['auth']))
         {
              if ($_SESSION['auth']!="yes")
              {
                  header("Location: login.php");
              }
         }
         else
         {
              header("Location: login.php");
         }
    ?>

这假设您有一个MySQL数据库(免费且易于安装),其中包含一个名为users的表,其中至少包含一个用户列和一个密码列。很容易弄清楚这个代码,这绝对不是唯一的方法!然而,这是一种体面的方式,因为它包含基本必需品(您可以在其他地方阅读),如输入卫生。

祝你好运!这确实是一个在计算机安全中非常重要的大问题。事实上,它有一个十亿美元的问题:“我如何让好人进入,但让坏人出局?”