我有這個在我的代碼:限制文件下載PHP
<a href = "res/pdf/sample.pdf">Sample PDF</a>
所以基本上它會似乎是一個下載鏈接到文件「sample.pdf」但問題是,有一個限制,在下載此文件。所以無論何時上傳機密報告,惡意用戶不小心記住或查看瀏覽器歷史記錄中的下載鏈接的URL,即使不訪問網站也可以輕鬆下載它,因爲它是直接鏈接。我應該怎麼做,所以這個鏈接將被保護?或只下載給分配給它的用戶?
我有這個在我的代碼:限制文件下載PHP
<a href = "res/pdf/sample.pdf">Sample PDF</a>
所以基本上它會似乎是一個下載鏈接到文件「sample.pdf」但問題是,有一個限制,在下載此文件。所以無論何時上傳機密報告,惡意用戶不小心記住或查看瀏覽器歷史記錄中的下載鏈接的URL,即使不訪問網站也可以輕鬆下載它,因爲它是直接鏈接。我應該怎麼做,所以這個鏈接將被保護?或只下載給分配給它的用戶?
不要被他們的直接網址服務的文件。有一個PHP腳本接收想要的文件的文件名,並提供它。
所以,如果有人想下載上面的文件,他會去
example.com/getfile?file=sample.pdf
你的PHP腳本,如果當前用戶有權限查看的文件,然後服務於它會檢查。
讓你的鏈接是這樣的:
<a href = "http://example.com/getfile?file=sample.pdf">Sample PDF</a>
您當前的方法對於敏感文件很有安全感。惡意用戶可以簡單地編寫一個腳本來下載res/pdf
中的所有文件。他所需要做的就是檢查目錄中每個字母的排列,並扔掉所有404錯誤。
您將不會重定向用戶,因爲這會破壞目的。您將通過相應的Content-disposition
標題將該文件作爲下載文件提供。
下面是一個例子:Fastest Way to Serve a File Using PHP
可以在Google並獲得更多的例子。
以下示範如何爲PDF文件的一個很好的例子: https://serverfault.com/questions/316814/php-serve-a-file-for-download-without-providing-the-direct-link
您可以限制使用htaccess的
想怎麼樣?你能舉個例子嗎?謝謝 –
你可以檢查HTTP_REFERER, 看看類似的帖子http://stackoverflow.com/questions/4654944/use-htaccess-to-limit-access-to-file-downloads –
這似乎更像是一個評論,而不是回答 –
我認爲你可以使用htaccess的找到解決.. –
我應該如何去與htaccess的呢? –
可能重複的[PHP - Protecting digital Downloads](http://stackoverflow.com/questions/5412328/php-protecting-digital-downloads) – JJJ