Как предоставить клиенту доступ к веб-приложению предварительного просмотра

Я создаю веб-приложение для клиента. Я хочу разместить его публично в свободном домене, чтобы они могли получить к нему доступ и просматривать его по мере продвижения. Я хочу, чтобы это было как можно ближе к тому, как они будут испытывать это, когда оно будет запущено в их реальном домене.

Приложение построено в Laravel, и большинство страниц требуют входа в систему, поэтому они автоматически защищены. Однако есть некоторые, которые являются общедоступными. Я, очевидно, установлю robots.txt, чтобы препятствовать индексации поисковыми системами, но, как мы знаем, это не является непогрешимым.

Какие есть варианты безопасного доступа к моему клиенту? Вот мой список пока:

  • Реализуйте HTTP Basic Auth для маршрутов, которые еще не защищены. Но аутентификация на уровне приложений уже достаточно сложна (с RBAC и т. Д.), Поэтому я бы предпочел этого не делать.
  • Измените.htaccess, чтобы разрешить использование IP-адресов только из их рабочей сети. Хотя у них есть мобильная рабочая сила, так что это не лучшее решение.
  • Настройте VPN. Это не мое сладкое место, и кажется, много работы.
  • Предоставьте им доступ для запуска / остановки виртуального хоста или перевода приложения в режим разработки. Это будет означать, что члены их команды должны будут координировать свои тестовые сессии, что будет слишком ограничительным.

Какие еще есть варианты?

1 ответ

Упомянутые вами способы кажутся мне разумными. Я бы просто добавил, что если у вас есть контроль над веб-сервером (например, Nginx), вы также можете ограничить доступ к определенному IP (или диапазону IP) чем-то вроде:

server {
  listen 80;
  server_name www.foo.bar;

  location / {
    root /path/to/app/;

    allow   client.public.ip;
    deny    all;
  }
}

Таким образом, вам не нужно беспокоиться о том, что сканеры получают доступ к вашему веб-сайту, или настраивают VPN, или проверяют маршруты, которые требуют базовой аутентификации. Вы просто предоставляете набор IP-адресов для доступа ко всему веб-приложению без дополнительных ограничений.

Еще одна вещь, которую вы можете сделать, это настроить правило брандмауэра, чтобы запретить все, кроме определенного IP. Или вы можете настроить свой сервер для доставки приложения через какой-то непонятный порт, который никто не будет склонен использовать. Возможно, вы захотите проверить UFW (несложный брандмауэр) для этих двух вариантов. Например:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 8325 <-- some random port

а затем подать приложение на порт 8325.

Другие вопросы по тегам