簡體   English   中英

通過php腳本進行.htaccess身份驗證,以防止瀏覽器對話框

[英].htaccess authentication from a php script to prevent a browser dialog box

使用php我對用戶進行身份驗證,然后在后台進行身份驗證,然后再次使用單個.htaccess用戶名和密碼進行第二次身份驗證。 對於所有用戶來說都是一樣的,但是我不希望他們再次輸入用戶名和密碼,現在允許他們輸入受密碼保護的目錄。 我不想使用http:// username @ password:somedomain.com

有什么想法嗎?

如果要避免多次登錄但需要HTTP身份驗證,則只能將 HTTP身份驗證用於實際登錄。 這是因為PHP可以發出並響應此類標頭。

http://php.net/manual/en/features.http-auth.php

這樣,用戶會收到一個彈出窗口,PHP可以讀取它並做出相應的響應,瀏覽器將通過隨后的請求將其傳遞,從而消除了進一步的提示。

注意:此解決方案不適用於PHP的CGI版本。

您不應該這樣做。

或者:

  1. 將代碼添加到受.htaccess保護的目錄中,以使用您的PHP身份驗證方案並刪除.htaccess身份驗證。

  2. 編寫一個新的PHP頁面/腳本,通過身份驗證的用戶將通過該頁面/腳本訪問所有受保護的內容。 將受保護的內容移出Web根目錄,或使用.htaccess文件拒絕所有訪問。 您的腳本將能夠訪問文件,但是用戶將必須通過腳本來訪問它們。

抱歉,我不認為這是可能的(除非您想使用username:pass @ url方案)。 您可以編寫一些ajax在后台進行操作,這意味着瀏覽器會記住該區域的身份驗證(也許,我從未真正嘗試過)。 但是無論如何,您仍然需要用戶名/密碼。

為了確保在瀏覽器中不以明文形式傳輸密碼(我假設您正在使用https通過網絡傳輸密碼,或者如果不是,則應該這樣做!)的安全性,我認為這會使用戶有些煩惱,但是我認為這不是很大的麻煩。

當然,您可以在PHP的該其他文件夾上進行身份驗證,這將解決此問題,或者通過一個HTTP身份驗證將所有受保護的代碼放在一個位置,但是我假設您不希望這樣做(或不能這樣做)。

暫無
暫無

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

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