
我有以下情況:
- 透過以下 Web 應用程式以安全存取(使用者/密碼)執行的服務:
在此應用程式(嵌入/iframe/等)內,我配置了一些嵌入來自子網域的資料的服務。
- 應嵌入的子域服務:
這些應用程式在「data.myapp.com」中嵌入了許多服務,例如「data.myapp.com/sevice1」、「data.myapp.com/sevice2」等...
但問題是:
我不想直接訪問“data.myapp.com”子網域...我想僅當來源來自該網址時才允許所有流量https://myapp.com。
我的 nginx conf 檔案如下所示:
server {
server_name myapp.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
}
server {
server_name data.myapp.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
allow myapp.com;
deny all;
location /service1/ {...}
location /service2/ {...}
location /service3/ {...}
}
但似乎我只能使用allow
IP 位址,並且在這種情況下伺服器具有相同的 IP 位址。
有沒有辦法阻止對當前 server_name 的直接存取並僅允許來自另一個網域的直接存取?
謝謝你的幫忙!
更新
我已經部分完成了使用引用標頭阻止對我的 data.myapp.com url 的直接訪問...但這根本不安全,一旦我們可以操縱引用標頭...
按照代碼:
server {
[...]
if ( $http_referer !~* 'myapp.com' ) {
return 404;
}
[...]
}