Apache-2.2

Apache 只允許授權使用者訪問文件

  • July 20, 2017

我有一個現有的網站,需要連結到我們網路伺服器上的 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>

引用自:https://serverfault.com/questions/862600