簡體   English   中英

通過PHP中的會話進行用戶身份驗證,是否需要.htaccess?

[英]User authentication via sessions in PHP, is .htaccess necessary?

我想知道使用PHP中的會話保護網站區域的密碼是否也需要.htaccess。 我是網站區域密碼保護的新手,所以盡管我對此進行了很多研究,但我仍然感到困惑。

我的客戶使用的計費公司提供了一個腳本,我將其放在特定的文件夾中,該腳本可讓他們將新的和更新的用戶信息寫入站點的用戶mysql數據庫。 我想使用自己的登錄和注銷頁面,並且我知道HTTP身份驗證使用其自己的彈出式登錄框,並且沒有真正的注銷方法,因此我們正在使用數據庫來存儲用戶信息。

因此,最重要的是,如果我通過數據庫進行身份驗證並在PHP中使用會話,是否需要在受保護的文件夾中添加一個.htaccess文件?

提前謝謝了!

你不可以。 .htaccess文件提供對基本身份驗證的訪問。 您正在談論的內容將由網站腳本處理。 您需要記住的最重要的事情是,始終檢查頁面加載中是否存在有效的會話,並確保無法重定向到登錄頁面。

如果目錄中的每個文件都是通過PHP實現的,則無需htaccess。 但是,如果它們是需要保護的目錄中的非PHP文件,則這些文件將不受保護。 如果您有銷售圖表或類似的圖像作為圖像存儲在文件服務器上,則任何能夠找到它們的人都將看到這些圖表。

請參閱有關基於REST的身份驗證的文章(通過Apache): http : //www.berenddeboer.net/rest/authentication.html

如您所述,您計划使用php session和我假設的mysql實現自己的身份驗證系統,那么您將不需要.htaccess文件即可完成此操作。

就通過PHP進行的操作而言,我仍然使用站點書中包含的現在進行了非常重大修改的系統, 以正確的方式構建自己的網站

從根本上講,這需要在控制器功能上加載一組功能,這些功能要么與在會話中存儲信息有關,要么相對於數據庫檢查存儲的信息。

然后,我可以使用類似這樣的方法,將其放置在其他所有內容之前來限制對某些頁面的訪問:

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM