Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中通过会话进行用户身份验证,是否需要.htaccess?_Php_Mysql_Database_Authentication - Fatal编程技术网

在PHP中通过会话进行用户身份验证,是否需要.htaccess?

在PHP中通过会话进行用户身份验证,是否需要.htaccess?,php,mysql,database,authentication,Php,Mysql,Database,Authentication,我想知道在PHP中使用会话的网站的密码保护区域是否也需要.htaccess。我不熟悉网站的密码保护区域,所以尽管我在这方面做了几天的研究,我仍然感到困惑 我的客户使用的计费公司提供了一个脚本,我将它放在一个特定的文件夹中,允许他们将新的和更新的用户信息写入站点的用户mysql数据库。我想使用我自己的登录和注销页面,我知道HTTP身份验证使用自己的弹出式登录框,不提供真正的注销方式……因此我们使用数据库来存储用户信息 所以底线是,如果我通过数据库进行身份验证并在PHP中使用会话,我是否需要在受保护

我想知道在PHP中使用会话的网站的密码保护区域是否也需要.htaccess。我不熟悉网站的密码保护区域,所以尽管我在这方面做了几天的研究,我仍然感到困惑

我的客户使用的计费公司提供了一个脚本,我将它放在一个特定的文件夹中,允许他们将新的和更新的用户信息写入站点的用户mysql数据库。我想使用我自己的登录和注销页面,我知道HTTP身份验证使用自己的弹出式登录框,不提供真正的注销方式……因此我们使用数据库来存储用户信息

所以底线是,如果我通过数据库进行身份验证并在PHP中使用会话,我是否需要在受保护的文件夹中使用.htaccess文件


非常感谢

不,你没有。htaccess文件提供对基本身份验证的访问。您所谈论的内容将由网站脚本处理。您需要记住的一件大事是,始终检查页面加载是否存在有效会话,如果失败,将重定向到登录页面。

不,您没有。htaccess文件提供对基本身份验证的访问。您所谈论的内容将由网站脚本处理。您需要记住的一件大事是始终在页面加载时检查有效会话,如果重定向到登录页面失败。

如果目录中的每个文件都是通过PHP实现的,那么您就不需要htaccess。但是,如果它们是目录中需要保护的非php文件,则这些文件将不受保护。如果您在文件服务器上存储了一个销售图表或类似的图像,那么任何能够找到它们的人都可以看到这些图表。

如果目录中的每个文件都是通过PHP实现的,那么您就不需要htaccess。但是,如果它们是目录中需要保护的非php文件,则这些文件将不受保护。如果您在文件服务器上存储了一张销售图表或类似的图片,那么任何能够找到它们的人都可以看到这些图表。

请参阅这篇关于基于REST的身份验证(通过Apache)的文章:

正如您所说的,您计划使用php会话和我假定的mysql实现您自己的身份验证系统,那么您将不需要.htaccess文件来实现这一点

就通过PHP实现这一点而言,我仍然使用了sitepoint手册中包含的经过大量修改的系统

它基本上需要加载一组控制器函数,这些函数要么与在会话中存储信息有关,要么与数据库检查存储的信息有关

然后,我可以使用类似这样的方法来限制对某些页面的访问,将其置于其他页面之前:

if (!userIsLoggedIn())
{
    include "$docRoot/html/main/login.html.php";
    exit();
}

if (!userHasRole('Site Admin'))
{
    $error = 'Only a website administrator may access this page, your ip address has been logged and a notification sent to our support team as this is considered as an unauthorized access attempt.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}

if (!userHasActiveAccount())
{
    $error = 'Sorry but your account has been disabled. For futher information please contact support.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}

请参阅这篇关于基于REST的身份验证(通过Apache)的文章:

正如您所说的,您计划使用php会话和我假定的mysql实现您自己的身份验证系统,那么您将不需要.htaccess文件来实现这一点

就通过PHP实现这一点而言,我仍然使用了sitepoint手册中包含的经过大量修改的系统

它基本上需要加载一组控制器函数,这些函数要么与在会话中存储信息有关,要么与数据库检查存储的信息有关

然后,我可以使用类似这样的方法来限制对某些页面的访问,将其置于其他页面之前:

if (!userIsLoggedIn())
{
    include "$docRoot/html/main/login.html.php";
    exit();
}

if (!userHasRole('Site Admin'))
{
    $error = 'Only a website administrator may access this page, your ip address has been logged and a notification sent to our support team as this is considered as an unauthorized access attempt.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}

if (!userHasActiveAccount())
{
    $error = 'Sorry but your account has been disabled. For futher information please contact support.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}

这是事实,但您不想尝试同时使用这两种方法。如果每个文件都被锁定是必要的,那么您可能更希望实现某种url重写,这可能会变得混乱。@Tom,非常好的信息。我所有的页面都是
pagename.php
,所以如果我理解正确,只要我的页面是.php,其中的任何内容都是安全的?如果没有,我将如何保护它们?php文件中的内容与php代码的实现一样安全。如果PHP代码没有安全性,则文件不安全。这适用于每一页。要求用户在一个页面上登录,然后将其传输到另一个不验证登录凭据的页面,这不是一种安全的方法。您必须在每个页面上实现安全性。这种安全性应该通过一个包含的文件来实现,以减少冗余,但仍然需要在每个文件中包含冗余。这是事实,但您不想尝试同时使用这两个文件。如果每个文件都被锁定是必要的,那么您可能更希望实现某种url重写,这可能会变得混乱。@Tom,非常好的信息。我所有的页面都是
pagename.php
,所以如果我理解正确,只要我的页面是.php,其中的任何内容都是安全的?如果没有,我将如何保护它们?php文件中的内容与php代码的实现一样安全。如果PHP代码没有安全性,则文件不安全。这适用于每一页。要求用户在一个页面上登录,然后将其传输到另一个不验证登录凭据的页面,这不是一种安全的方法。您必须在每个页面上实现安全性。这种安全性应该通过一个包含的文件来实现,以减少冗余,但无论如何,每个文件都需要包含冗余file@llion,谢谢你。我想这是一条路,但我需要验证,再次感谢你!至于检查页面加载是否有有效会话,我假设这是通过页面代码顶部的条件语句来处理的?是的,php为此提供了几个函数。您很可能会在用户的计算机上存储一个带有会话令牌的cookie,并使用该令牌从数据库或会话存储中检索他们的会话。@llion,谢谢您。我想这是一条路,但我需要验证,再次感谢你!至于检查页面加载是否有有效会话,我假设这是通过页面代码顶部的条件语句来处理的?是的,php提供了几个函数