我有一個設置,其中文件不能使用直接鏈接下載,除非使用HTTP身份驗證提供用戶名/密碼。從PHP設置HTTP用戶名/密碼
我想創建一個鏈接到下載的頁面,訪問時設置HTTP用戶名和密碼,所以用戶永遠不會看到HTTP身份驗證框。 (但是,如果他們嘗試直接下載文件,則不能)。
$_SERVER['PHP_AUTH_USER']
和$_SERVER['PHP_AUTH_PW']
提供了一種讀取但不設置這些值的方法。
我有一個設置,其中文件不能使用直接鏈接下載,除非使用HTTP身份驗證提供用戶名/密碼。從PHP設置HTTP用戶名/密碼
我想創建一個鏈接到下載的頁面,訪問時設置HTTP用戶名和密碼,所以用戶永遠不會看到HTTP身份驗證框。 (但是,如果他們嘗試直接下載文件,則不能)。
$_SERVER['PHP_AUTH_USER']
和$_SERVER['PHP_AUTH_PW']
提供了一種讀取但不設置這些值的方法。
這是一個壞主意!身份驗證是爲確保你是誰你說你是。相反,您將其用作控制訪問給定資源的方法。
如果你想強迫別人去通過網關頁面,生成一個隨機查詢字符串和匹配時,用header()
設置HTTP元數據和fpassthru()
或sendfile()
發送內容。
您可以通過在URL中放置一個用戶名和密碼,以達到HTTP-auth的鏈接:
http://username:[email protected]/path/to/file.zip
注意,這個符號可能無法在所有瀏覽器都支持,或者支持它可能是用戶在瀏覽器中可配置。您需要在對您很重要的平臺上進行測試。
請注意,很有可能您的問題有更好的解決方案。
我真的不認爲有更好的解決方案,除了不使用HTTP身份驗證。 – gview 2012-07-26 17:34:00
這看起來像一個有前途的解決方案,但[看起來Internet Explorer不允許這樣](http://support.microsoft.com/kb/834489) – 8128 2012-07-26 18:25:23
即阻止它,Firefox會引發警告。幾年前,有人發現你可以創建一個像http://bankofamerica.com:[email protected]這樣的網址,並且人們會點擊鏈接相信它導致美國銀行網站。 – 2012-07-26 18:34:05
爲什麼不移動文件如果你似乎不關心它們是否實際上受到保護? – 2012-07-26 17:24:23
等一下。所以你希望每個人都必須認證自己...但是你也希望訪問你的網站的每個人都能自動進行認證?這樣做有什麼意義? – Palladium 2012-07-26 17:24:42
也許文件歸檔保存在與基於PHP的系統不同的服務器上,該系統將對其進行身份驗證。 – ghoti 2012-07-26 17:29:28