Ограничения для Standalone

Ограничения для Standalone#

Ограничение по User Agent#

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

Ниже в разделах примеры настройки отклонения запросов по заголовку User-Agent на уровнях балансировщика HaProxy и Ingress-контроллера.

Для Standalone ограничение можно настроить через конфиг HaProxy - /etc/haproxy/haproxy.cfg

Пример конфигурации#

Конфиг HaProxy /etc/haproxy/haproxy.cfg:

frontend haproxynode
    bind *:80
    bind *:443 ssl crt /etc/ssl/globalerp/haproxy_ssl.pem
    mode http
    capture request header User-Agent len 512
    acl is_ie hdr_sub(User-Agent) -i MSIE # "MSIE" - указать нужный user agent
    acl is_ie_test_page path_beg /ie-test
    use_backend test-ie-page if is_ie || is_ie_test_page
    http-request set-header X-Forwarded-Proto https if { ssl_fc }
    http-request set-header X-Forwarded-Port %[dst_port]
    redirect scheme https code 301 if !{ ssl_fc }
    default_backend backendnodes

backend test-ie-page
    http-request return status 200 content-type "text/html" file /etc/haproxy/errors/ie-warning.html # Путь до странички заглушки
    http-response set-var(txn.user_agent) req.hdr(User-Agent)

backend backendnodes
    balance leastconn
    option forwardfor
    cookie GS_BALANCER_SERVER_NAME insert
    option httpchk
    http-check send meth HEAD uri / ver HTTP/1.1 hdr Host localhost
    server global-server-01 localhost:8080 check cookie global-server-01

Html заглушка /etc/haproxy/errors/ie-warning.html:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Браузер Internet Explorer не поддерживается</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; margin-top: 80px; background: #f8f8f8; }
        h1 { color: #d32f2f; font-size: 28px; }
        p { font-size: 18px; color: #444; margin: 15px 0; }
    </style>
</head>
<body>
    <h1>⚠️ Internet Explorer не поддерживается</h1>
    <p>Данная система не работает в Internet Explorer.</p>
    <p><strong>Пожалуйста, используйте современный браузер:</strong></p>
    <p>Google Chrome, Mozilla Firefox, Яндекс Браузер</p>
    <hr>
    <p><strong>User-Agent:</strong> %[var(txn.user_agent)]</p>
</body>
</html>