Nginx
Nginx - 僅允許通過引用 URL 訪問文件夾目錄
前端網路開發人員在這裡。提前抱歉。
我的公司希望將我們軟體的新版本儲存在我們的 Web 伺服器上,執行 Nginx,由WP Engine提供。
這些建構的文件路徑是
company.com/downloads/file.zip
. 我們希望限制對該文件夾中文件的訪問,除非它們來自位於我們客戶登錄門後面的特定引用 URL。
/downloads/
如果使用者從允許的引薦來源中點擊指向內部任何文件的連結,則使用者將獲取文件- 如果使用者點擊任何其他來源的連結,則返回 404 或重定向到首頁
- 如果為空referer或直接訪問嘗試,返回404或重定向到首頁
我找到了一個關於防止圖像熱連結的資源(我們將處理 .zip 文件),這可能對我有用,但我需要有關該語言語法的幫助。它可能有很多問題。
location ~ /downloads/$ { valid_referers none blocked ~.allowed_domain.com; if ($invalid_referer) { return 404; } }
WP Engine 不允許我自己添加 Nginx 程式碼,所以我必須向他們發送我希望他們實現的程式碼。如果有人知道如何做到這一點並且可以幫助我,我將非常感激!
其他可能性是使用X-Accel標頭。我不知道你的案例,所以它可能不合適。
X-Accel是 nginx 特定的標頭。您可以在 PHP 腳本中發出該標頭 - 比如
header("X-Accel-Redirect: /private-downloads/magic.iso")
當 nginx 辨識此標頭時,它將伺服器magic.iso
位於/data/private-downloads
.因此,您的任務是準備
download.php
檢查授權並使用X-Accel標頭響應或重定向到登錄螢幕。
/private-downloads/
在 nginx.conf 中的定義location /private-downloads/ { internal; # this alias /data/private-downloads; # this should be located outside of HTTP server root }
有關更多詳細資訊,請查看有關 serverfault 的 x-accel 問題。1