直接页面访问预防

时间:2013-05-14 20:54:07

标签: php security login

在我的网站上我有2个页面,一个名为login.php的简单密码保护页面和名为index.php的主网页

我试图阻止用户直接访问'index.php'

  1. 如果访问者试图直接访问index.php,则会重定向到login.php
  2. 如果访问者输入了正确的密码,则可以访问index.php文件。
  3. 目前,我陷入了困境。

    1. 当我尝试直接访问index.php时,我被重定向到login.php - 这没关系
    2. 当我输入密码时,点击回车,我被发送到index.php然后回到`login.php'页面
    3. 请如何防止此循环

      // index.php
      <?php
          if (!isset($include_allowed)){
              die("<meta http-equiv='refresh'content='0;url=\"http://www.myweb.com/login.php'>");
          }
      ?>
      

      -

      // login.php
      <?php
          $include_allowed = true;
      ?>
      
      非常感谢(抱歉,如果它令人困惑)

      请注意,没有用户名,只有一个基本密码表单,在发送到'index.php'页面之前检查密码是否与变量匹配

      if ($pass == "mypassword") {
      

1 个答案:

答案 0 :(得分:2)

网上有大量关于为您的网站设置身份验证系统的教程。您正在寻找的是使用sessions

这是一篇很好的文章:http://www.phpbuilder.com/columns/user-authentication/Jason_Gilmore05172011.php3

基本上,从这里(拥有登录页面),你想要像

这样的东西
if( !isset( $_SESSION[ 'isLogged' ] ) ) {
    header( 'Location: login.php' );
}

index.php

更多链接:

http://www.techrepublic.com/forum/questions/101-274721/good-tutorial-for-authenticated-web-sessions-using-phpmysql

http://www.slideshare.net/chadhutchins/basic-user-authentication-with-php-mysql

http://www.9lessons.info/2009/09/php-login-page-example.html

修改

如果您想避免使用会话,还可以查看:Http Authentication with PHP。这实际上也可以摆脱你的login.php脚本