403 Forbidden, isteğin sunucuya ulaştığı ancak erişim politikasınca reddedildiği anlamına gelir. WordPress’te dosya izinleri, .htaccess deny kuralları, ModSecurity, güvenlik eklentileri, CDN WAF, nonce ve IP engelleri ayrı ayrı kontrol edilmelidir.
403 Forbidden
You don't have permission to access this resource
ModSecurity: Access denied with code 403
rest_cookie_invalid_nonce
403, kaynağın var olabileceğini ancak mevcut kullanıcı, IP veya istek biçimine izin verilmediğini bildirir. Bu nedenle 404 gibi içerik aramak yerine erişimi reddeden katman bulunmalıdır.
Yalnız wp-admin veya admin-ajax.php etkileniyorsa güvenlik eklentisi, ModSecurity kuralı, IP allowlist ve nonce kontrolü önceliklidir.
Tüm site 403 veriyorsa document root izinleri, dosya sahipliği, üst dizin execute izni ve .htaccess içindeki Deny/Require kuralları kontrol edilir.
Cloudflare WAF veya bot koruması origin’e ulaşmadan 403 üretebilir. Response header ve ray ID, hatanın CDN mi origin mi olduğunu ayırmaya yardım eder.
WordPress REST API isteklerinde geçersiz veya süresi dolmuş nonce 403 oluşturabilir. Nonce kontrolünü devre dışı bırakmak yerine cache ve oturum akışı düzeltilmelidir.
Tüm dosya ve klasörleri 777 yapmak güvenlik açığıdır ve sahiplik sorununu çözmez. WordPress izinleri sunucu kullanıcısı ve PHP çalışma modeliyle birlikte değerlendirilmelidir.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: Sunucu erişim talebini reddetmiştir.
Muhtemel neden: İzin, WAF, deny kuralı veya güvenlik eklentisi.
Anlamı: Apache/Nginx veya dosya sistemi erişime izin vermiyor.
Muhtemel neden: Yanlış sahiplik, Directory kuralı veya deny.
Anlamı: WAF kuralı isteği saldırı olarak işaretlemiştir.
Muhtemel neden: Form içeriği, SQL benzeri metin veya yanlış pozitif.
Anlamı: REST isteğinin nonce değeri geçersizdir.
Muhtemel neden: Cache, oturum süresi veya yanlış header.
Anlamı: Yönetim yolu özel olarak engellenmiştir.
Muhtemel neden: Wordfence, IP kuralı, Basic Auth veya ModSecurity.
Anlamı: AJAX isteği WAF veya nonce tarafından reddedilmiştir.
Muhtemel neden: Eklenti isteği, güvenlik kuralı veya cache.
Anlamı: Apache yapılandırması istemciyi reddetmiştir.
Muhtemel neden: Require/Deny/Allow kuralı.
Anlamı: Cloudflare firewall kuralı isteği engellemiştir.
Muhtemel neden: WAF/Firewall Rule veya bot skoru.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
curl -sSIk https://example.com/wp-admin/
403’ün Cloudflare, Nginx veya Apache’den geldiğine dair başlıkları gösterir.
find . -maxdepth 2 -printf '%m %u:%g %p\n' | head -n 80
Kök dizindeki olağandışı izin ve sahiplikleri gösterir.
grep -RniE 'deny from|require all denied|<files|<directory' .htaccess wp-content 2>/dev/null
Erişimi kapatan kuralları bulur.
grep -Ri 'ModSecurity' /usr/local/apache/logs/error_log /var/log/apache2/error.log 2>/dev/null | tail -n 50
Rule ID ve engellenen isteği gösterir.
wp user list --fields=ID,user_login,roles
WordPress kullanıcı ve rol katmanının çalıştığını doğrular.
wp plugin list --status=active | grep -Ei 'wordfence|security|firewall|limit'
Güvenlik veya erişim eklentilerini listeler.
WordPress hatasının temel nedeni aynıdır ancak log yolları, PHP ayar ekranları ve servis yönetimi kullanılan barındırma altyapısına göre değişir.
cPanel’de ModSecurity, IP Blocker, Hotlink Protection ve File Manager kontrol edilir.
grep -i 'ModSecurity' /usr/local/apache/logs/error_log | tailPlesk’te Web Application Firewall, Fail2Ban ve domain logları öne çıkar.
plesk bin ip_ban --bannedPanelsiz sunucuda vhost access kuralları, WAF ve dosya sahipliği doğrudan incelenir.
grep -RniE 'deny all|Require all denied' /etc/nginx /etc/apache2 2>/dev/null403 yanıtını üreten katmanı belirleyin; ardından IP, WAF, dosya izni ve WordPress nonce/eklenti kontrollerini daraltın.
Tüm site, wp-admin, REST API veya yalnız belirli form mu etkilendiğini test edin.
curl -sSIk https://example.com/wp-admin/CDN, web server veya WordPress katmanını ayırın.
Kuralı tamamen kapatmadan yanlış pozitif isteği ve rule ID’yi kaydedin.
WordPress dizinlerini güvenli sahiplik ve izinlerle karşılaştırın.
find . -maxdepth 2 -type d -printf '%m %u:%g %p\n' | headYalnız logda işaret edilen eklentiyi geçici kapatın.
wp plugin list --status=activeNonce, AJAX ve gerçek kullanıcı işlemlerini test edin.
curl -sSIk https://example.com/wp-json/Firewall, Fail2Ban, Wordfence veya CDN IP engeli kontrol edilir.
curl -sSIk https://example.com/ModSecurity yanlış pozitifi, nonce ve request body içeriği incelenir.
Admin IP kuralı, security plugin ve Basic Auth kontrol edilir.
Ray ID ile Security Events kaydı bulunur ve eşleşen rule incelenir.
MIME, WAF body limiti, upload dizini ve nonce kontrol edilir.
404 kaynak bulunamadı, 403 ise kaynak mevcut olsa bile erişimin reddedildiği anlamına gelir.
Genel kural dosyalar 644, dizinler 755’tir; ancak sahiplik ve sunucu modeli mutlaka dikkate alınmalıdır.
Hayır. Yanlış pozitif rule ID bulunup mümkünse yalnız ilgili alan adı/istek için kontrollü istisna uygulanmalıdır.
Evet; IP, rate limit, country block veya firewall kuralı isteği engelleyebilir.
Cloudflare firewall kuralının isteği engellediğini gösterir; Ray ID ile olay bulunabilir.
Süresi dolmuş sayfa, cache veya bozuk oturum eski nonce gönderebilir.
Origin logları, güvenlik eklentisi logu, WAF rule ID ve IP engelleri birlikte kontrol edilir.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.