Apache-2.2
Apache 只允許授權使用者訪問文件
我有一個現有的網站,需要連結到我們網路伺服器上的 pdf 文件。問題是,只有通過登錄站點進行身份驗證的使用者才能查看該文件。我已經嘗試了所有我能想到的東西,但我只是不知道如何配置 apache 來做我想做的事。要麼它允許每個人訪問該文件,要麼沒有人有權訪問。
如何設置配置,以便僅授權來自 foo.bar.com 的請求從 blah.baz.com 獲取文件?
更新 在我目前擁有的站點的配置文件中
<Directory "/usr/local/web/static/foo"> Order allow,deny Deny from all Allow from foo.bar.com </Directory>
當我在 chrome 控制台中檢查失敗的請求時,我可以看到它包含
Host:blah.baz.com Referer:http://foo.bar.com/
你可以這樣做
mod_write
:RewriteEngine On RewriteCond %{HTTP_REFERER} !pippo\.com [NC] RewriteCond %{REQUEST_URI} ^/foo RewriteRule .* - [F]
嘗試偽造推薦人:
curl --referer http://www.pluto.com/bot.html http://localhost/foo <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access / on this server.</p> </body></html>
我最終使用“Referer”環境變數來檢查請求是否來自正確的站點。因此,對於我在上面給出的範例,配置看起來像:
ServerName blah.baz.com DocumentRoot /usr/local/web/static SetEnvIf Referer foo.bar.com localreferer <Directory "/usr/local/web/static/foo"> Order deny,allow Deny from all Allow from env=localreferer </Directory>