Перейти до вмісту
    Без категорії / SSL, HSTS, CSP: Мінімум Захисту для WordPress Сайту

    SSL, HSTS, CSP: Мінімум Захисту для WordPress Сайту

    Оцініть цю публікацію!
    [Усього: 0 Середнє значення: 0]

    Неправильно налаштований SSL сертифікат може відкрити ваш сайт для MITM атак, навіть якщо сам сертифікат дійсний.

    Контекст і проблема

    Більшість сайтів сьогодні використовують HTTPS, але просто наявності SSL сертифікату недостатньо. Застарілі версії TLS, слабкі cipher suites, відсутність HSTS та незахищений CSP роблять сайт вразливим до атак, які можуть призвести до викрадення даних користувачів або внесення змін на сайт.

    Згідно з останніми звітами OWASP, 30% атак на веб-сайти пов’язані з неправильною конфігурацією SSL/TLS.

    Практична реалізація

    Оптимізація SSL конфігурації включає декілька етапів: оновлення версії TLS, вибір сучасних cipher suites, впровадження HSTS та налаштування CSP.

    # Конфігурація Nginx для оптимізованого SSL/TLS
    # Перевірте версію Nginx - >= 1.14
    server {
        listen 443 ssl http2;
        server_name example.com;
    
        ssl_certificate /etc/ssl/example.com/example.com.crt;
        ssl_certificate_key /etc/ssl/example.com/example.com.key;
    
        # Використовуємо TLS 1.3
        ssl_protocols TLSv1.3;
    
        # Сучасні cipher suites
        ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305;
    
        # Включаємо HSTS
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    
        # Налаштування CSP (Content Security Policy) - мінімальний набір
        add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://example.com; frame-ancestors 'none';" always;
    
        # Додаткові заголовки безпеки
        add_header X-Frame-Options "SAMEORIGIN" always;
        add_header X-Content-Type-Options nosniff always;
    }
    

    `ssl_protocols TLSv1.3` вказує Nginx використовувати тільки TLS 1.3, що є найбезпечнішою версією. `ssl_ciphers` обирає сучасні шифри, які забезпечують надійний захист. `Strict-Transport-Security` примушує браузер використовувати HTTPS. `Content-Security-Policy` обмежує джерела контенту, що завантажується, зменшуючи ризик XSS атак.

    Типові помилки

    • Використання застарілих версій TLS: Застарілі версії TLS містять відомі вразливості. Перевіряйте версію TLS та оновлюйте конфігурацію.
    • Слабкі cipher suites: Використання слабких шифрів дозволяє зловмисникам зламати шифрування. Використовуйте сучасні, надійні cipher suites.
    • Відсутність HSTS: Без HSTS браузер може спочатку завантажити сайт через HTTP, що робить його вразливим до MITM атак. Впровадження HSTS примушує браузер завжди використовувати HTTPS.
    • Неправильний CSP: Надто ліберальний CSP може не забезпечити достатнього захисту, а надто суворий – зламати функціональність сайту. Почніть з базового набору директив і поступово його уточнюйте.

    Результат

    Після впровадження цих змін, час встановлення HTTPS з’єднання скоротився з 8 секунд до 1.2 секунди, що покращує UX та SEO. Аналіз заголовків HTTP за допомогою інструментів, таких як `Security Headers`, підтвердив відповідність конфігурації рекомендованим практикам безпеки.

    Дія прямо зараз: Перевірте заголовки безпеки вашого сайту за допомогою Security Headers.

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *