我有以下情况:
- 通过 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 的直接访问并仅允许从另一个域访问?
谢谢你的帮助!
更新
我已经部分完成了使用 referer 标头阻止对我的 data.myapp.com url 的直接访问...但是,一旦我们可以操纵 referer 标头,这根本就不安全...
按照代码:
server {
[...]
if ( $http_referer !~* 'myapp.com' ) {
return 404;
}
[...]
}