1. Anasayfa
  2. »
  3. Genel
  4. »
  5. 403 Forbidden Hatası Nedir? Nedenleri ve Çözüm Yöntemleri

403 Forbidden Hatası Nedir? Nedenleri ve Çözüm Yöntemleri

Verimin Verimin -
18 0
403 forbidden 20260808

403 Forbidden, sunucunun isteği anladığı halde kaynağa erişim yetkisi tanımadığını bildiren HTTP durum kodudur. Sunucu isteği almış, adresi çözümlemiş ve kaynağı bulmuştur; erişimi bilinçli olarak reddeder. Reddetme kararı dosya izinlerinden, sunucu yapılandırmasından veya güvenlik kurallarından gelir. Kodun 4xx sınıfında yer alması hatanın istemci tarafındaki bir yetki eksikliğine bağlandığını gösterir.

Bu rehberde 403 Forbidden hatasının anlamını, 401 koduyla farkını ve oluşma nedenlerini açıklıyoruz. Ardından hatanın kaynağını sunucu günlüklerinden bulmayı, Nginx ve IIS tarafındaki çözümleri, WordPress sitelerine özgü adımları ve API isteklerinde dönen 403 yanıtını ele alıyoruz. Son bölümlerde hatanın kalıcı olarak nasıl önleneceğini, kontrol panelleri üzerinden dosya izinlerinin nasıl düzeltileceğini ve 403 kodunun arama motoru sıralamasına etkisini anlatıyoruz.

403 Forbidden Ne Demek?

403 Forbidden, sunucunun isteği anladığı halde kaynağa erişim yetkisi tanımadığını bildiren HTTP durum kodudur. Kodun Türkçe karşılığı “erişim yasak” biçimindedir. Sunucu çalışmaktadır, adres geçerlidir ve dosya yerindedir; engel yalnızca yetkilendirme katmanındadır. 403 kodu tarayıcıda “403 Forbidden”, “Access Denied”, “You don’t have permission to access this resource” veya “Erişim engellendi” metinleriyle görüntülenir.

403 ve 401 kodlarında kimlik doğrulama farkı

403 ile 401 Hatası Arasındaki Fark Nedir?

403 ve 401 kodları erişimin reddedildiğini bildirir, ancak reddetme gerekçeleri farklıdır. İki kodun karşılaştırması aşağıdaki tabloda verilmiştir.

Ölçüt401 Unauthorized403 Forbidden
Kimlik doğrulamaYapılmadı veya başarısızYapıldı ve başarılı
Sunucu davranışıKimlik bilgisi isterİstek yapmaz, doğrudan reddeder
Yanıt başlığıWWW-Authenticate gönderirEk başlık göndermez
Çözüm yoluDoğru kimlik bilgisi girmekYetki veya izin tanımlamak

401 kodunda kullanıcı kimliğini kanıtlarsa erişim açılır. 403 kodunda kullanıcının kimliği bilinir ve yine de erişim kapalıdır; parola girmek sonucu değiştirmez. Bu ayrım yanlış tanı konulmasını engeller ve çözüm süresini kısaltır.

403 Forbidden Hatası Neden Oluşur?

403 Forbidden hatasının başlıca nedenleri aşağıda listelenmiştir:

  • Hatalı dosya ve dizin izinleri
  • Dizin içinde index dosyasının bulunmaması
  • .htaccess dosyasındaki engelleme kuralları
  • Güvenlik duvarı ve IP engeli
  • Yanlış sahiplik ayarı
  • Hotlink koruması
  • Coğrafi erişim kısıtı
644 ve 755 dosya izin değerlerinin dizin yapısında dağılımı

Hatalı Dosya ve Dizin İzinleri

Linux sunucularda her dosya ve dizin için okuma, yazma ve çalıştırma izinleri tanımlanır. Web sunucusu okuma izni olmayan bir dosyayı sunamaz ve 403 kodu döndürür. Doğru izin değerleri aşağıda verilmiştir:

  • Dosyalar için 644
  • Dizinler için 755
  • Çalıştırılabilir betikler için 755
  • wp-config.php gibi yapılandırma dosyaları için 600

777 değeri dosyayı herkese yazılabilir hale getirir. Modern barındırma ortamlarında suPHP ve CloudLinux güvenlik katmanları bu değeri reddeder ve dosyayı sunmayı bırakır, dolayısıyla 777 ayarı 403 hatasını çözmek yerine yeni bir 403 hatası üretir.

Eksik Dizin Dizini (index) Dosyası

Web sunucusu bir dizin adresine gelen isteği varsayılan belgeyle karşılar. Dizinde index.html veya index.php dosyası bulunmadığında sunucu dizin içeriğini listelemeyi dener. Dizin listeleme kapalıysa istek 403 koduyla reddedilir. IIS sunucularda bu durum 403.14 alt koduyla raporlanır ve hata mesajında “Directory listing denied” ifadesi yer alır.

.htaccess Kurallarının Erişimi Engellemesi

Apache sunucularda dizin bazlı kurallar .htaccess dosyasıyla tanımlanır. Dosyadaki engelleme direktifleri istekleri 403 koduyla reddeder. Sık kullanılan engelleme kuralları aşağıdadır:

Order deny,allow
Deny from all

Require all denied

<Files "wp-login.php">
    Require ip 192.0.2.10
</Files>

Kuralların hangisinin devrede olduğunu belirlemek için .htaccess dosyası geçici olarak yeniden adlandırılır. Site açılıyorsa engel bu dosyadadır ve kurallar tek tek geri eklenerek sorumlu satır bulunur.

Güvenlik Duvarı ve IP Engeli

Sunucu üzerindeki güvenlik katmanları şüpheli istekleri 403 koduyla karşılar. ModSecurity bir kuralı tetikleyen isteği engellediğinde güvenlik günlüğüne kural kimliğini yazar. Imunify360 ise saldırı deseni tespit ettiği IP adresini geçici olarak listeye alır. Engelin kaynağı günlükteki kural kimliğinden okunur ve gerekli istisna tanımlanır. Koruma katmanının çalışma mantığı Imunify360 rehberinde açıklanmıştır.

Yanlış Sahiplik (ownership) Ayarı

Dosya izinleri doğru olsa bile sahiplik ayarı web sunucusu kullanıcısıyla uyuşmadığında erişim reddedilir. Sahiplik chown kullanici:grup dosya komutuyla düzeltilir. Paylaşımlı barındırmada her hesap kendi kullanıcısıyla çalışır ve kök kullanıcı tarafından yüklenen dosyalar bu nedenle 403 üretir.

403 Hatasının Kaynağı Loglardan Nasıl Bulunur?

403 hatasının gerekçesi sunucu hata günlüğüne yazılır. Kaynağı bulmak için aşağıdaki adımlar uygulanır:

  1. Hata günlüğünü açın: tail -n 100 /var/log/nginx/error.log
  2. Apache kullanılıyorsa: tail -n 100 /var/log/httpd/error_log
  3. Hatanın oluştuğu saat aralığındaki satırları süzün
  4. Satırdaki gerekçe ifadesini okuyun ve dosya yolunu not alın
  5. ModSecurity günlüğünü kontrol edin: grep "ModSecurity" /var/log/httpd/error_log

Sık karşılaşılan üç günlük satırı ve anlamları aşağıdadır.

directory index of "/var/www/html/klasor/" is forbidden

Dizinde varsayılan belge yok ve dizin listeleme kapalı.

access forbidden by rule

Sunucu yapılandırmasındaki bir engelleme kuralı devrede.

ModSecurity: Access denied with code 403 [id "949110"]

Güvenlik modülü kuralı tetiklendi. Kural kimliği için istisna tanımlanır.

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

Nginx tarafındaki 403 hatası, kök dizin yolunun ve dosya sahipliğinin doğrulanmasıyla çözülür. Çözüm adımları aşağıda sıralanmıştır:

  1. Yapılandırmayı sınayın: nginx -t
  2. root direktifindeki yolun gerçek dizinle eşleştiğini doğrulayın
  3. index direktifinde tanımlı dosyanın dizinde bulunduğunu kontrol edin
  4. Nginx kullanıcısını öğrenin: grep "^user" /etc/nginx/nginx.conf
  5. Dosya sahipliğini bu kullanıcıya göre düzeltin
  6. Dizin listeleme gerekiyorsa autoindex on; satırını ekleyin
  7. Yapılandırmayı yeniden yükleyin: systemctl reload nginx

Kök dizin yolunun sonunda gereksiz bir eğik çizgi bulunması yol birleştirmesini bozar ve 403 üretir. Sunucu yazılımının direktif yapısı Nginx rehberinde ayrıntılandırılmıştır.

IIS 403.1, 403.4, 403.6 ve 403.14 alt kodları

IIS’te 403.14 Forbidden Hatası Nasıl Giderilir?

IIS sunucularda 403.14 alt kodu, dizin listeleme özelliğinin kapalı olduğunu ve dizinde varsayılan belge bulunmadığını bildirir. Çözüm için aşağıdaki adımlar uygulanır:

  1. IIS Yöneticisi’ni açın ve ilgili siteyi seçin
  2. Directory Browsing özelliğini açın ve Enable seçeneğine tıklayın
  3. Default Document bölümünden varsayılan belgeyi tanımlayın
  4. Uygulama havuzunun .NET sürümünü doğrulayın
  5. Yapılandırmayı web.config dosyası üzerinden uygulayın
<configuration>
  <system.webServer>
    <directoryBrowse enabled="true" />
  </system.webServer>
</configuration>

IIS sunucularda 403 kodu alt kodlarla ayrıştırılır. Alt kodların anlamları aşağıdaki tabloda verilmiştir.

Alt kodAnlamı
403.1Çalıştırma erişimi yasak
403.4SSL gerekli
403.6IP adresi reddedildi
403.14Dizin listeleme reddedildi

WordPress Sitelerinde 403 Forbidden Hatası Nasıl Düzeltilir?

WordPress sitelerindeki 403 hatası çoğunlukla güvenlik eklentisinin kural setinden veya bozulmuş .htaccess dosyasından kaynaklanır. Düzeltme adımları aşağıda sıralanmıştır:

  1. FTP üzerinden wp-content/plugins klasörünün adını değiştirin ve siteyi yenileyin
  2. Site açılıyorsa eklentileri tek tek etkinleştirin ve sorumlu eklentiyi belirleyin
  3. .htaccess dosyasını yeniden adlandırın, Ayarlar bölümünden kalıcı bağlantıları yeniden kaydedin
  4. wp-admin ve wp-includes dizinlerinin iznini 755 olarak ayarlayın
  5. Güvenlik eklentisinin IP engel listesini kontrol edin ve kendi adresinizi listeden çıkarın
  6. Barındırma sağlayıcısının güvenlik duvarı günlüğünü inceleyin

Yönetim paneline erişilemeyen durumlarda tüm adımlar FTP veya dosya yöneticisi üzerinden uygulanır. Eklenti ve dosya izni yönetimi WordPress güvenliği rehberinde ayrıntılandırılmıştır.

API İsteklerinde 403 Forbidden Yanıtı Ne Anlama Gelir?

API isteklerinde dönen 403 yanıtı, isteğin kimliğinin tanındığını fakat istenen işlem için yetkisinin bulunmadığını bildirir. Yanıtın üç ayrı gerekçesi vardır ve her biri farklı çözüm gerektirir.

Birinci gerekçe yetki kapsamıdır. Anahtar geçerlidir, ancak istenen uç nokta için izin verilmemiştir; çözüm yetki kapsamının genişletilmesidir. İkinci gerekçe kaynak paylaşım politikasıdır. Tarayıcıdan yapılan istek farklı bir alan adından geliyorsa sunucu CORS başlığı tanımlamadığında isteği reddeder. Üçüncü gerekçe hız sınırıdır. Belirlenen süredeki istek adedi aşıldığında sunucu erişimi geçici olarak kapatır ve yanıt başlığında kalan hak bilgisini gönderir. Arayüz mimarisi ve yetkilendirme yöntemleri API nedir rehberinde açıklanmıştır.

403 Forbidden Hatası Kalıcı Olarak Nasıl Önlenir?

403 Forbidden hatasının tekrarını önleyen önlemler aşağıda sıralanmıştır:

  1. İzin standardı belirleyin. Dosya ve dizin izinleri projede standarda bağlanmadığında her yükleme yeni bir hata üretir.
  2. Dağıtım sonrası izin kontrolü yapın. Otomatik dağıtım izinleri sıfırlar ve kontrol yapılmadığında site yayın anında kapanır.
  3. Güvenlik kuralı istisnalarını tanımlayın. Yönetim paneli adresleri istisna listesine alınmadığında düzenli olarak engellenir.
  4. Yönetim erişimi için IP beyaz listesi kullanın. Beyaz liste yerine genel engelleme kullanıldığında meşru yönetici erişimi de kesilir.
  5. Güvenlik günlüklerini düzenli inceleyin. Günlük incelenmediğinde engellenen meşru trafik fark edilmez.
  6. Panel üzerinden toplu izin onarımı uygulayın. Elle düzeltme yapılan sunucularda bazı dizinler atlanır ve hata kısmen sürer.

cPanel ve Plesk Üzerinden Dosya İzinleri Nasıl Düzeltilir?

Kontrol paneli kullanılan sunucularda dosya izinleri arayüz üzerinden toplu olarak düzeltilir. İki panelde izlenecek yollar aşağıda verilmiştir:

  • cPanel: Dosya Yöneticisi açılır, hedef dizin seçilir, üst menüden İzinler bölümüne girilir. Dizinler için 755, dosyalar için 644 değeri girilir ve alt klasörlere uygulama seçeneği işaretlenir.
  • Plesk: Files bölümünden dosya seçilir, sağ tıklanarak Change Permissions penceresi açılır. Recursive seçeneği işaretlendiğinde izin tüm alt öğelere uygulanır.

Toplu izin değişikliği sırasında yapılandırma dosyalarının ayrı bir değere sahip olması gerekir. Panel özellikleri ve dosya yönetimi araçları cPanel hosting rehberinde anlatılmıştır.

FTP ile Yüklenen Dosyalarda 403 Hatası Neden Görülür?

FTP istemcileri yükledikleri dosyalara kendi varsayılan izin değerini uygular ve bu değer web sunucusunun beklediğinden düşük kalır. İstemci ayarlarındaki varsayılan izin maskesi dosyalar için 644, dizinler için 755 olarak tanımlanır. Aktarım sonrası izinlerin doğrulanması yükleme kaynaklı hataları ortadan kaldırır. Aktarım protokolü ve istemci ayarları FTP nedir rehberinde açıklanmıştır.

403 Hatası Arama Motoru Sıralamasını Etkiler mi?

403 hatası veren sayfalar Googlebot tarafından erişilemez kabul edilir ve kısa süre içinde dizinden çıkarılır. Googlebot bir adreste 403 kodu aldığında sayfayı tarayamaz ve mevcut dizin kaydını geçersiz sayar. Süreç 5xx hatalarından daha hızlı işler, çünkü 403 kodu geçici bir aksaklık değil kalıcı bir yetki kararı olarak yorumlanır.

Google Search Console üzerindeki Sayfalar raporunda bu durum “Engellendi” başlığıyla listelenir. Robots.txt üzerinden yapılan engelleme ile 403 kodu arasındaki fark önemlidir: robots.txt taramayı durdurur fakat sayfa adresi dizinde kalabilir, 403 kodu ise sayfanın tamamen düşmesine yol açar. Rapor okuma ve doğrulama adımları Google Search Console rehberinde anlatılmıştır.

403 Forbidden Hatası Tarayıcıdan Çözülür mü?

Hayır, 403 Forbidden hatası tarayıcı ayarlarıyla çözülmez. Karar sunucuda verilir ve tarayıcı yalnızca sonucu görüntüler. Tek istisna coğrafi erişim kısıtıdır; bu durumda farklı bir ağ üzerinden yapılan istek kabul edilir.

403 Hatası Sitenin Hacklendiği Anlamına Gelir mi?

Hayır, 403 hatası tek başına bir güvenlik ihlaline işaret etmez. Hata çoğunlukla izin veya yapılandırma kaynaklıdır. Gerçek ihlal belirtileri farklıdır: bilinmeyen yönetici hesapları, dosya değişiklik tarihlerindeki tutarsızlık, sunucudan çıkan beklenmedik trafik ve arama sonuçlarında görünen yabancı içerik. Bu belirtiler görüldüğünde malware temizleme süreci başlatılır.

İndirme Yöneticisi (IDM) 403 Forbidden Hatası Verir mi?

Evet, indirme yöneticileri hotlink koruması bulunan sunucularda 403 hatası alır. Sunucu gelen isteğin başvuru başlığını kontrol eder ve istek doğrudan bir indirme aracından geliyorsa dosyayı sunmaz. Koruma, dosyaların başka sitelerde bant genişliği tüketmesini engellemek için tanımlanır. Kendi sunucunuzda bu davranışı değiştirmek için hotlink koruma kurallarına istisna eklenir.

Dosya İzinlerini 777 Yapmak 403 Hatasını Çözer mi?

Hayır, izinleri 777 değerine ayarlamak 403 hatasını çözmez. suPHP ve CloudLinux çalıştıran sunucularda herkese yazılabilir dosyalar güvenlik gerekçesiyle sunulmaz ve ayar yeni bir 403 hatası üretir. Doğru değerler dosyalar için 644, dizinler için 755 olarak kalır.

403 Hatası Devam Ediyorsa Ne Yapılmalı?

İzin ve yapılandırma kontrolleri sonrasında süren 403 hatası sunucu düzeyindeki bir güvenlik kuralından kaynaklanır ve sağlayıcı incelemesi gerektirir. Destek talebi açarken aşağıdaki dört bilgiyi iletmeniz çözüm süresini kısaltır:

  • Hatanın görüldüğü tam adres
  • Hatanın oluştuğu tarih ve saat
  • Bağlantı kurulan IP adresi
  • Hata sayfasının ekran görüntüsü

Verimin olarak sunucularımızdaki güvenlik kurallarını inceliyor, meşru trafiği engelleyen kural kimlikleri için istisna tanımlıyoruz. Sorununuz devam ediyorsa teknik destek ekibimize başvurabilirsiniz.

İlgili Yazılar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir