Security headers
Content-Security-Policy, X-Frame-Options ve HSTS gibi güvenlik başlıklarını öğrenirsin.
header() fonksiyonu
header() fonksiyonu ham bir HTTP başlığı gönderir. Çıktı üretmeden önce çağrılmalıdır; aksi halde "headers already sent" hatası alırsın. Güvenlik başlıkları derinlemesine savunma için önemlidir.
Üç temel başlık: Content-Security-Policy (betik kaynaklarını kısıtlar), X-Frame-Options: DENY (sayfanın iframe içinde gösterilmesini engeller, clickjacking önler), Strict-Transport-Security (HTTPS'i zorlar).
Content-Security-Policy
Content-Security-Policy (CSP) tarayıcıya hangi kaynaklardan betik, stil, görsel yüklenebileceğini söyler. default-src 'self' yönergesi yalnızca aynı kaynaktan yüklemeye izin verir; satır içi betikler ve dış sunucular engellenir.
CSP, XSS açığı olsa bile saldırının etkisini sınırlar. Örneğin saldırganın enjekte ettiği harici betik yüklenmez ve çalışmaz. Başlık header() ile gönderilir.
Uygulama Üç güvenlik başlığı gönder
Üç güvenlik başlığı gönder: Content-Security-Policy: default-src 'self', X-Frame-Options: DENY ve Strict-Transport-Security: max-age=31536000. Sonra $msg değişkenini echo ile yazdır.
Örnek çözümü göster
default-src 'self'"); yaz. header("X-Frame-Options: DENY"); ve header("Strict-Transport-Security: max-age=31536000"); ekle. Sonra echo $msg . "\n"; yazdır.
Örnek çözüm:
<?php
header("Content-Security-Policy: default-src 'self'");
header("X-Frame-Options: DENY");
header("Strict-Transport-Security: max-age=31536000");
$msg = "başlıklar gönderildi";
echo $msg . "\n";
Kendini test et
-
Güvenlik başlıklarını eşleştir
- X-Frame-Options
- Clickjacking önler
- Content-Security-Policy
- Kaynak kısıtlar
- Strict-Transport-Security
- HTTPS zorlar
- header
- HTTP başlığı gönderir
-
Hangi başlık clickjacking'i önler?
- X-Frame-Options: DENY
- Content-Type: text/html
- Cache-Control: no-store
- Set-Cookie: theme=dark
Cevabı göster
X-Frame-Options: DENY — Doğru. X-Frame-Options: DENY sayfanın iframe içinde gösterilmesini engeller.
-
X-Frame-Options başlığını tamamla
header(____);Cevabı göster
header("X-Frame-Options: DENY");