
Ich habe folgende Situation:
- Der Dienst wird mit sicherem Zugriff (Benutzer/Passwort) über eine Webanwendung ausgeführt unter:
Innerhalb dieser Anwendung (Embed/Iframe/usw.) konfiguriere ich einige Dienste, die Daten aus einer Subdomäne einbetten.
- Subdomain-Dienste, die eingebettet werden sollen:
Diese App bettet viele Dienste in „data.myapp.com“ ein, wie z. B. „data.myapp.com/sevice1“, „data.myapp.com/sevice2“ usw.
Das Problem ist jedoch:
Ich möchte keinen direkten Zugriff auf die Subdomäne „data.myapp.com“ … Ich möchte den gesamten Datenverkehr nur zulassen, wenn die Quelle von der URL stammt.https://myapp.com.
So sieht meine Nginx-Konfigurationsdatei aus:
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/ {...}
}
Aber anscheinend kann ich es nur allow
mit IP-Adresse verwenden und in diesem Fall hat der Server dieselbe IP-Adresse.
Gibt es eine Möglichkeit, den direkten Zugriff auf den aktuellen Servernamen zu blockieren und nur von einer anderen Domäne aus zuzulassen?
Vielen Dank für jede Hilfe!
AKTUALISIEREN
Mir ist es teilweise gelungen, den direkten Zugriff auf meine URL data.myapp.com mithilfe des Referrer-Headers zu blockieren … aber das ist überhaupt NICHT SICHER, sobald wir den Referrer-Header manipulieren können …
Folgen Sie dem Code:
server {
[...]
if ( $http_referer !~* 'myapp.com' ) {
return 404;
}
[...]
}