nignx blockiert den direkten Zugriff auf die URL und erlaubt den Zugriff nur von einer bestimmten Subdomäne

nignx blockiert den direkten Zugriff auf die URL und erlaubt den Zugriff nur von einer bestimmten Subdomäne

Ich habe folgende Situation:

  1. Der Dienst wird mit sicherem Zugriff (Benutzer/Passwort) über eine Webanwendung ausgeführt unter:

https://myapp.com

Innerhalb dieser Anwendung (Embed/Iframe/usw.) konfiguriere ich einige Dienste, die Daten aus einer Subdomäne einbetten.

  1. Subdomain-Dienste, die eingebettet werden sollen:

https://data.myapp.com

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 allowmit 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;
    }

    [...]
}

verwandte Informationen