403 Forbidden Hatası ve Çözümü

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.

lsws-403-forbidden.jpg

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;

 
# Apache 2.2
Order Allow,Deny
Allow from all
Deny from 111.111.111.111
Deny from 222.222.222.222
Deny from 123.123.123.123

# Apache 2.4+
<RequireAll>
    Require all granted
    Require not ip 111.111.111.111
    Require not ip 222.222.222.222
    Require not ip 123.123.123.123
</RequireAll>

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

server {
  ## Diğer nginx konfigürasyonlarınız
  location / {
    deny 111.111.111.111;
    deny 222.222.222.222;
    deny 123.123.123.123;
  } 
  ## Diğer nginx konfigürasyonlarınız
}

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.

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

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.

  • http 403, 403 error, forbidden, 403 hatası, yasak

Bu cevap yeterince yardımcı oldu mu?

0 Bu dökümanı faydalı bulan kullanıcılar: