403 Forbidden Hatası Nedir? Neden Oluşur ve Nasıl Çözülür?
403 Forbidden Hatası Nedir?
403 Forbidden hatasıyla karşılaştıysanız, tarayıcınız aslında sunucuya ulaşıyor ama istediğiniz kaynağa girmek için izniniz yok. Bağlantı kopukluğuyla filan alakası yok; tamamen yetkilendirme kısıtlaması. Yani sunucu çalışıyor, ama sizin erişiminiz özellikle engellenmiş. Web geliştiricileriyle sistem yöneticileri için bu hata genellikle yapılandırmada bir sorun olduğuna işaret eder.
Dosya ve Klasör İzinlerinden Kaynaklanan Sorunlar
Linux tabanlı sunucularda her dosya ve klasörün kendine ait erişim izinleri olur. Klasörler genellikle 755, dosyalar da 644 izniyle sorunsuz çalışır. Ama bir klasör 700 gibi daha kısıtlı bir izne sahipse, web sunucusu bu klasöre giremez ve 403 hatası fırlar. Aynı şekilde, çalıştırma izni olmayan PHP dosyaları da erişime kapalı olur. Yanlış ayarlanmış izinler bazen sitenin tamamının ulaşılmaz hale gelmesine sebep olur.
Hatalı .htaccess Kuralları
Apache sunucularda erişim kısıtlamalarını çoğunlukla .htaccess dosyasında yapılan ayarlar belirler. Yanlış bir yönlendirme, IP kısıtlaması ya da "Deny from all" gibi bir satır yüzünden herkes engellenebilir. Bazen güvenlik için eklenen kurallar, fark etmeden bütün dizinleri kapatır. O yüzden 403 hatası aldığınızda ilk bakacağınız yerlerden biri mutlaka .htaccess olmalı.
Sunucu Güvenlik Modüllerinin Etkisi
ModSecurity gibi güvenlik modülleri bazen fazla hassas davranıp, şüpheli gördüğü istekleri otomatik olarak engeller. Mesela bazı formların gönderimi, özel karakterli URL’ler ya da fazla sayıda istek, güvenlik duvarı tarafından tehdit olarak algılanabilir. Böyle olunca 403 hatası çıkar ama bu genellikle kullanıcıyla ilgili değil, sunucunun güvenlik politikasıyla ilgilidir. Logları incelemeden bu tür bir engeli fark etmek kolay olmaz.
Dosya Sahipliği ve Kullanıcı Yetkileri
Dosyanın sahibi yanlış bir kullanıcıysa, web sunucusu dosyaya erişemez. Özellikle FTP ile toplu yükleme yapınca sahiplik sorunları çok sık görülür. Sunucu başka bir kullanıcıya ait dosyayı okumaya çalıştığında hemen 403 hatası verir. Genelde bu sorun chown komutuyla kolayca düzeltilir.
403 Forbidden Hatası Nasıl Tespit Edilir?
Önce sunucunun hata loglarına bakın. Sonra dosya izinlerini, klasör yapısını ve .htaccess kurallarını tek tek kontrol edin. Gerekirse .htaccess dosyasını geçici olarak devre dışı bırakıp test edin. Eğer hala çözemediyseniz, hosting hizmeti aldığınız yerin destek ekibi güvenlik engelleri konusunda yardımcı olur.