Pro Bezpieczeństwo schedule 20 min

Zabezpiecz stronę — CORS, CSP, rate limiting

Nagłówki bezpieczeństwa krok po kroku: Content Security Policy z nonce, CORS walidacja origin z JSON, rate limiting per IP. OWASP Top 10 w praktyce.

Bezpieczeństwo PRO 12 min czytania

CORS, CSP, rate limiting: zabezpiecz stronę w 2 godziny

Trzy filary bezpieczeństwa webowego: Content Security Policy (CSP) z nonce chroni przed XSS, CORS validation kontroluje kto może łączyć się z Twoim API, rate limiting blokuje brute-force. Krok po kroku, z prawdziwym kodem PHP.

signal_cellular_alt Średni schedule 2 godziny smart_toy Zespół BinSoft

Masz stronę z API (chatbot AI, formularz kontaktowy, panel admina). Ktoś z zewnątrz próbuje wysyłać zapytania do Twojego API, wstrzykiwać JavaScript do Twojej strony, albo łamać hasło brute-forcem. Bez zabezpieczeń — może mu się udać.

Trzy mechanizmy, które blokujesz w 2 godziny: CSP (blokuje XSS), CORS (blokuje nieautoryzowane requesty), rate limiting (blokuje brute-force). Zero zależności zewnętrznych, czysty PHP.

CSP z nonce — blokuj XSS

Content Security Policy mówi przeglądarce: "uruchamiaj TYLKO te skrypty, które mają specjalny token (nonce). Wszystkie inne — ignoruj." Nawet jeśli ktoś wstrzyknie JavaScript — przeglądarka go nie uruchomi.

includes/header.php — CSP z nonce
<?php
// Generuj losowy nonce (unikatowy per request)
$cspNonce = bin2hex(random_bytes(16));

// Wyślij header CSP
header("Content-Security-Policy: "
    . "default-src 'self'; "
    . "script-src 'self' 'nonce-{$cspNonce}'; "
    . "style-src 'self' 'unsafe-inline' fonts.googleapis.com; "
    . "font-src fonts.gstatic.com; "
    . "img-src 'self' data:; "
    . "frame-ancestors 'self'"
);
?>

<!-- Każdy inline script MUSI mieć nonce -->
<script nonce="<?= $cspNonce ?>">
    // Ten skrypt się uruchomi
</script>

<!-- BEZ nonce = przeglądarka ZABLOKUJE -->
<script>
    // Ten skrypt NIE się uruchomi!
</script>
warning Pułapka: podwójny CSP

Jeśli .htaccess TEŻ wysyła CSP header — przeglądarka weźmie BARDZIEJ restrykcyjny. Twój nonce z PHP nie będzie w headerze z .htaccess i skrypty przestaną działać. Jedna reguła: CSP TYLKO w PHP (header.php), NIGDY w .htaccess.

lock

Ten poradnik wymaga konta Pro

Dostęp do zaawansowanych poradników, kodu źródłowego i wsparcia technicznego.