403 Forbidden Hatası ve Çözümü

Gürkan Biçer

Back-end Developer

Bu eğitselimizde 403 forbidden hatası ve çözümü hakkında bilgilere yer verdik.

Giriş

403 Forbidden hatası, genellikle isteklerin web sunucu tarafından bloklanması durumunda dönen bir HTTP hatasıdır.

404 Not Found, 500 Internal Server Error ve 503 Service Unavailable hatalarına nispeten sebebi daha kolay anlaşılmaktadır. 403 Forbidden hatası ile karşı karşıya kalındığında incelenmesi gereken yerler sabittir ve daha hızlı çözüm üretilebilir.

403 Forbidden Hatası Nedir?

Bu hatanın Türkçe'de karşılığı Yasak şeklindedir. Web sunucu içerisindeki konfigürasyonlar, bir firewall yazılımı veya websiteye ait sunucu konfigürasyon dosyasındaki kurallar nedeniyle, istemci ilgili sayfaya ulaşırken, kuralların gerekliliklerini karşılamıyorsa web sunucu tarafından dönen 403 Forbidden hatası ile karşılaşır.

Örneğin; websiteye giren ziyaretçinin IP adresi firewall veya sunucu konfigürasyonunda yasaklı listesindeyse, bu ziyaretçi 403 Forbidden hatası ile karşılaşır.

403 Forbidden Hatası Nedenleri Nelerdir?

  • Ziyaretçinin IP adresinin sunucu veya yazılım içerisindeki bir firewall yazılımı veya konfigürasyon tarafından bloklanmış olması,
  • Ziyaretçinin User Agent bilgisinin sunucu veya yazılım içerisindeki bir firewall yazılımı veya konfigürasyon tarafından bloklanmış olması,
  • GET ve POST isteklerinin sunucu üzerinde Mod Security gibi bir WAF yazılımı tarafından filtreye takılması,
  • Dosyaların ve dizinlerin, chmod ve chown izinlerinin hatalı olması.
  • İstek gönderdiği ilgili dizinde index.php dosyanızın olmaması,

403 Forbidden Hatası Nasıl Çözülür?

403 Forbidden hatasının çözümü için öncelikle web sunucu konfigürasyonunda eklediğiniz bir kural var ise onları kaldırabilir ya da pasif hale getirerek test edebilirsiniz. .htaccess veya Nginx üzerinde eklemiş olduğunuz kurallar var ise onlara gözatabilirsiniz.

.htaccess dosyası için bir örnek;

Nginx konfigürasyon dosyası için bir örnek;

Eğer .htaccess dosyanızda veya Nginx kullanıyorsanız nginx.conf dosyanızda herhangi bir eklenmiş kural yoksa, sunucu üzerinde herhangi bir WAF yazılımı veya Mod Security varsa bu firewall yazılımlarından da kaynaklanıyor olabilir.

.htaccess dosyası ile Mod Security yazılımını devre dışı bırakmak için aşağıdaki komutları .htaccess dosyanızın başına ekleyebilir veya hosting kontrol paneliniz üzerinden devre dışı bırakabilirsiniz.

ModSecurity veya WAF yazılımı mevcut değilse, sunucu genelinde bir firewall olup olmadığını teyit edebilirsiniz. Bir paylaşımlı hosting hizmeti üzerinde websitenizi barındırıyorsanız, servis sağlayıcınızdan destek isteyebilirsiniz.

Bazı zamanlarda da hatalı dosya izinleri (chmod) veya sahiplik izinleri (chown) kaynaklı problemler yaşanabiliyor. Dosyalarınızın chmod izinleri 644, konfigürasyon dosyalarınızın izinleri 640, dizinlerin izinleri ise 755 olmalıdır. Dosya ve sahiplik izinlerinizi FTP üzerinden veya destekliyorsa hosting kontrol panelinizin dosya yöneticisi üzerinden kontrol edebilirsiniz. Sahiplik izinlerinizi belki FTP veya hosting kontrol panelinden düzenleyemeyebilirsiniz, servis sağlayıcınızdan teyiti için destek isteyebilirsiniz.

Eski bir tarayıcı sürümü kullanıyorsanız, sunucu üzerinde eski tarayıcı sürümlerini yani User Agent bilgilerini engelleyen bir kural da olabilir. Çünkü, genellikle zararlı bot trafiğini eski user agent bilgileriyle gönderdiklerinden bu user agent bilgileri firewall yazılımı tarafından bloklanabiliyor.

Sonuç

Sonuç itibari ile 403 Forbidden hatası erişimin bloklandığı durumlarda meydana gelmektedir.

10 Temmuz 2021, 12:49 tarihinde güncellendi.