2010-04-19 164 views
1

有沒有人有任何建議如何只允許從我的網站上的網頁下載文件,並拒絕訪問,如果有人輸入或粘貼到瀏覽器的直接URL?拒絕直接URL訪問文件

回答

2

不是直接鏈接到您的文件,而是鏈接到首先檢查引用鏈接的php/asp/python/whatever腳本。如果引薦來源位於您的域中,則重定向至實際文件。

+0

重定向到文件不符合OP的標準。一旦瀏覽器被重定向到直接的URL,用戶就有了直接的URL,並且可以直接粘貼。你可以讓腳本自己提供文件,但是在那個時候,你最好還是使用mod_rewrite(或者IIS等效)解決方案。 – ThatBlairGuy 2014-01-28 16:31:38

0

不知道您使用的是哪種語言,但在.NET中,您可以將它們添加到不可瀏覽的App_Data文件夾中,並編寫自定義處理程序(.ashx)文件以檢索文件。這增加了您的處理程序在將文件提供給客戶端之前可以執行一些規則檢查的安全級別。

1

這取決於你的網絡服務器。通過Apache,您可以使用mod_rewrite rules來阻止HTTP_REFERER不是來自您自己站點的任何下載嘗試。 (我想象存在IIS類似的東西)

修改「阻止內嵌圖像」的例子,你最終是這樣的:

RewriteCond %{HTTP_REFERER} !^http://YOUR_SITE_HERE/ALLOWED_PATH/.*$ [NC] 
RewriteRule .*\.PROTECTED_FILE_SPEC$ [F] 

有一個警告這裏,這是一個重要問題。 並非所有瀏覽器都發送HTTP_REFERER標頭。因此,這不僅會阻止您的主頁下載,還會在瀏覽器不發送HTTP_REFERER時阻止您的網站下載。

(請注意,這些規則的原始版本將允許下載時,瀏覽器不支持HTTP_REFERER。我修改了它的基礎上不允許下載時,URL直接粘貼到瀏覽器的要求。)