nignx bloquea el acceso directo a la URL y permite el acceso solo desde un subdominio específico

nignx bloquea el acceso directo a la URL y permite el acceso solo desde un subdominio específico

Tengo la siguiente situación:

  1. Servicio que se ejecuta con acceso seguro (usuario/contraseña) a través de una aplicación web en:

https://myapp.com

Dentro de esta aplicación (embed/iframe/etc) configuro algunos servicios que incorporan datos de un subdominio.

  1. Servicios de subdominio que deben integrarse:

https://data.myapp.com

Estas aplicaciones incorporan muchos servicios en "data.myapp.com", como "data.myapp.com/sevice1", "data.myapp.com/sevice2", etc.

Pero el problema es que:

NO QUIERO acceso directo al subdominio "data.myapp.com"... Quiero permitir todo el tráfico sólo si la fuente proviene de la URLhttps://myapp.com.

Así es como se ve mi archivo de configuración de nginx:

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/ {...}
}

Pero parece que sólo puedo usar allowcon dirección IP y en ese caso el servidor tiene la misma dirección IP.

¿Hay alguna manera de bloquear el acceso directo al nombre_servidor actual y permitirlo solo desde otro dominio?

¡Gracias por cualquier ayuda!


ACTUALIZAR

He logrado en parte bloquear el acceso directo a mi URL data.myapp.com usando el encabezado de referencia... pero esto NO ES SEGURO en absoluto, una vez que podamos manipular el encabezado de referencia...

Sigue el código:

server {

    [...]

    if ( $http_referer !~* 'myapp.com' ) {
        return 404;
    }

    [...]
}

información relacionada