Перейти к основному содержимому

Proxy-сервер

Терминалы общаются с сервером Бюро пропусков через промежуточный proxy-сервер. Основная задача proxy — валидация всех запросов на предмет SQL-инъекций и других потенциально опасных конструкций. При необходимости можно настроить дополнительные правила проверки.

Пример правила валидации запросов в proxy-сервере, которое блокирует любые HTTP-запросы, содержащие SQL-команду DROP TABLE (в любом регистре), для защиты от SQL-инъекций, где поле pattern принимает регулярное выражение:

{
"name": "sql_drop_table",
"pattern": "(?i)drop\\s+table"
}

Файл с правилами валидации запросов находится по следующему пути внутри Docker-контейнера:

/app/bin/config/rules.json

Proxy реализован как реверс-прокси, что позволяет перехватывать и анализировать трафик даже при использовании HTTPS.

Развёртывание

Proxy поставляется в виде Docker-образа и запускается как обычное Docker-приложение.

Пример docker-compose.yml (конфигурация по умолчанию):

passoffice_validator:
image: request-validator:latest #Для получения полного образа обратитесь в службу поддержки.
restart: unless-stopped
ports:
- '8081:8081'

Укажите сертификат, в сертификате указываются все доменные имена, по которым будет доступен сервер бюро.

Для работы с Proxy-сервер по SSL воспользуйтесь инструкцией и проделайте аналогичные шаги для настроек application.properties:

server.port=8081
server.ssl.enabled=true
server.ssl.key-store=config/custom_cert.p12
server.ssl.key-store-password=your_password
# PKCS12, PEM, JKS
server.ssl.key-store-type=PKCS12
server.ssl.weak-check=true

spring.application.name=TerminalProxy
spring.main.banner-mode=off

app.show-rule-name=false #отображать название правила, которое не прошло валидацию

# Logging level
logging.level.com.aamsystems.terminalproxy.ProxyRestController=TRACE

Файл application.properties находится по следующему пути внутри Docker-контейнера:

/app/bin/config/application.properties

Настройка в PassOffice

В Корне системы укажите URL proxy-сервера (например, https://localhost:8081). На вкладке «SSL/TLS» добавьте сертификат.

После этого:

  • Бюро пропусков будет обращаться к терминалам через proxy
  • Терминалы будут обращаться к Бюро пропусков через proxy

Весь трафик проходит через proxy, где происходит проверка запросов на безопасность.

Схема архитектуры взаимодействия PassOffice и Терминала через Proxy