Назад | Перейти на главную страницу

Защита доступа к CGI-программам через обратный прокси

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

У меня есть веб-приложение на основе JavaScript и PHP, которое обслуживается моим веб-сервером Apache.

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

Действительно, на данный момент, если пользователь знает прямой URL-адрес этих служб (который может быть получен, например, через веб-консоль), он / она может получить доступ к ресурсу, независимо от того, вошел ли он / она в систему.

Веб-службы создаются программой CGI.

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

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

Итак, я сделал иллюстрацию, показывающую, что я имею в виду (надеюсь, что это понятно). Будет ли это (один) правильный способ решить мою проблему?

Некоторая информация:

Очевидно, я решил реализовать другое решение: HTTP Basic Auth.

Я в основном следил это руководство и:

  1. Установлены apache-utils

sudo apt-get update sudo apt-get install apache2-utils

  1. Создал .htpasswd файл с пользователем и паролем в /etc/apache2 папка

    sudo htpasswd -c /etc/apache2/.htpasswd <my_user>

  2. Изменил конфигурацию моего виртуального хоста, добавив эти строки (в смелый)

<Directory "/usr/lib/cgi-bin/"> AuthType Basic AuthName «Запрещенный контент» AuthUserFile /etc/apache2/.htpasswd AllowOverride All Options +ExecCGI -MultiViews +FollowSymLinks Order allow,deny Allow from all AddHandler fcgid-script .fcgi Требовать действительного пользователя </Directory>

  1. перезапустить apache

sudo systemctl restart apache2

А теперь что происходит:

  • Если я проверю свой защищенный ресурс, набрав прямой URL (например, mysite.com/cgi-bin / ...) Меня просят ввести учетные данные.
  • Если я получаю доступ через свое приложение, меня всегда спрашивают учетные данные

Очевидно, все по протоколу SSL / TLS.

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