NB 2013年3月26日 - 道歉,因爲我將不得不收回原始答案。
事實證明,HTTP_REFERER(總是被拼寫錯誤)對安全性來說不可靠,因爲它很容易被欺騙。
我將在下面留下一些原始的想法,因爲它表明不該做什麼,相信這將是安全的,但首先將佈置一個替代方案。
任何基於密鑰的替代方案的基本挑戰是,無論發送來回解鎖網站外文件訪問,都可以通過瀏覽器以各種方式顯示,這是PDF.js實際運行並請求訪問。即使身份驗證機制避開主屏幕,或者使用SSL保護通道,情況也是如此。
我現在想出的最好的方法是一個時間限制鍵,接受這個有一些實際的困難。但是,即使偶爾出現網絡減速,但我們發現,時間窗口可能相當短,因爲關鍵訪問發生在下載文檔的開始處。
SSL將是任何高安全性安排的要求,否則可以監聽網絡連接並在超時時間內重新使用密鑰。啓動PDF.js的身份驗證系統需要與文檔網關協調PDF.js用於回撥和訪問的密鑰。這可以通過CMS數據庫可能實現的服務器內消息來完成。
因此,這看起來像一個可能的設計,如果不是在一個小時內完成的話。如果SSL用於原始用戶登錄以及基於時間的密鑰,則可能認爲它與在線銀行一樣安全,包括現實生活中的人員因素。
這裏是原來的缺陷觀念的意識,以供參考:
似乎有一個簡單的,但現在看到的虛假答案保護的文件,通過使用一個.htaccess條件只允許你的本地供應pdf.js文件的權限,以保存PDF文件的目錄。該目錄需要位於網站內,因爲pdf.js訪問網絡空間而不是文件空間。這裏的條件和響應的形式,你可以調整你的網址和pdf.js位置:
Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(http|https)://(www.)?yourdomain\.com/yourfolder/s/pdf\.js$
RewriteRule .* - [F]
FYI:[example.com](http://example.com)是有原因的。 – 2013-03-15 00:37:57
已經被回答: http://stackoverflow.com/questions/10834196/secure-files-for-download – 2013-03-15 00:47:23
是的!這會打開文件,謝謝。但我不確定PDF.js如何描述這一點。 – littlered 2013-03-15 00:58:59