403, 404'ten işe yarar biçimde ayrılır: sunucu istediğinizi bulmuştur. Sonra bir şey hayır demiştir. Bu da işi dört olasılığa indirir.

1. Dizin dosyası yok

İçinde index.php ya da index.html bulunmayan ve dizin listeleme kapalı olan bir klasöre yapılan istek 403 verir. Bu doğru davranıştır ve genelde bir dağıtımın tamamlanmadığı anlamına gelir.

ls -la /var/www/site/

2. Sunucu onu okuyamıyor

Web kullanıcısının okuyamadığı bir dosya reddedilir. İzin kipiyle birlikte sahibine de bakın — kip, sahibinden çok daha sık doğrudur.

namei -l /var/www/site/index.php

namei bütün yolu adım adım gezip her düzeydeki izinleri yazar. Ortada çalıştırma biti olmayan bir klasör, altındaki her şeyi engeller; gözden kaçan durum da tam olarak budur.

3. Bir kural onu reddediyor

grep -rn "deny\|Require all denied" /etc/nginx/sites-enabled/ .htaccess 2>/dev/null

Uzantıya ya da klasöre göre engelleyen güvenlik kuralları, kastedilen türden 403'tür. Ağa takılan sizin kendi dosyanızsa, kural fazla geniştir.

4. Bir güvenlik duvarı ya da WAF

403 sizin olmayan bir sayfayla geliyorsa, sunucunun önündeki bir şeydendir. Onun kendi kaydı, eşleşen kuralın adını verir.

Eklenti güncellemesinden sonra wp-admin'de görülen 403, genellikle saldırı altında sandığı bir yolu kilitleyen bir güvenlik eklentisidir. Kaydı bunu söyleyecektir; klasörünü yeniden adlandırarak devre dışı bırakmak da doğrulamanın en hızlı yoludur.