nignx блокирует прямой доступ к URL и разрешает доступ только с определенного поддомена

nignx блокирует прямой доступ к URL и разрешает доступ только с определенного поддомена

У меня следующая ситуация:

  1. Сервис работает с защищенным доступом (пользователь/пароль) через веб-приложение по адресу:

https://myapp.com

Внутри этого приложения (embed/iframe и т. д.) я настраиваю некоторые сервисы, которые встраивают данные из поддомена.

  1. Службы поддоменов, которые следует внедрить:

https://data.myapp.com

Эти приложения встраивают множество сервисов в «data.myapp.com», например «data.myapp.com/sevice1», «data.myapp.com/sevice2» и т. д.

Но проблема в том, что:

Я НЕ ХОЧУ прямой доступ к поддомену "data.myapp.com"... Я хочу разрешить весь трафик только в том случае, если источник находится на URL-адресеhttps://myapp.com.

Вот как выглядит мой файл конфигурации 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/ {...}
}

Но, похоже, я могу использовать только allowIP-адрес, и в этом случае сервер имеет тот же IP-адрес.

Есть ли способ заблокировать прямой доступ к текущему имени сервера и разрешить его только с другого домена?

Спасибо за любую помощь!


ОБНОВЛЯТЬ

Мне частично удалось заблокировать прямой доступ к моему URL-адресу data.myapp.com с помощью заголовка referer... но это совсем НЕ БЕЗОПАСНО, поскольку мы можем манипулировать заголовком referer...

Следуйте коду:

server {

    [...]

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

    [...]
}

Связанный контент