HTTP 403 "Yasak": Nedenleri, Önlenmesi ve Düzeltilmesi

Yayınlanan: 2023-09-01
İçindekiler
  • HTTP 403 nedir?
  • Yaygın sebepler
  • Teşhis koymak
  • Nasıl Önlenir
  • Nasıl düzeltilir?
  • İlgili Hatalar

HTTP 403, “Yasak” anlamına gelir ve istemcinin isteğinin sunucu tarafından anlaşıldığını ancak bunu yerine getirmeyi reddettiğini belirtir.

Bu makale, HTTP 403'ün özüne ışık tutmayı, yaygın nedenlerini ortaya çıkarmayı, teşhisi konusunda rehberlik etmeyi ve önleme ve çözüm teknikleri sunmayı amaçlamaktadır.

Kapsamlı bir anlayış sağlamak için ilgili hataları da vurgulayacağız.

HTTP 403 nedir?

403-yasak-hata

HTTP 403, "Yasak" anlamına gelen bir durum kodudur. Karşılaşıldığında istemciye, sunucunun isteği anladığını ancak tamamlamayı reddettiğini bildirir.

Kullanıcı kimlik doğrulamasıyla ilgili sorunlarla ilgili olan 401 "Yetkisiz" durumunun aksine, 403 hatası, kimlik doğrulamanın başarılı olabileceğini ancak kimliği doğrulanmış kullanıcının hâlâ istenen kaynağa erişmek için gerekli izinlere sahip olmadığını gösterir.

Yaygın sebepler

HTTP 403 hataları çeşitli durumlardan kaynaklanabilir:

  1. Yetersiz İzinler : Kullanıcı, sunucudaki belirli bir kaynağa erişmek için gerekli izinlere sahip olmayabilir.
  2. Coğrafi Kısıtlamalar : Bazı web içerikleri belirli bölge veya ülkelerdeki kullanıcılarla sınırlı olabilir.
  3. IP Engelleme : Sunucular, güvenlik endişeleri veya önceki şüpheli etkinlikler nedeniyle belirli IP adreslerini engelleyebilir.
  4. Katı .htaccess Kuralları : Apache sunucularındaki .htaccess dosyasındaki yanlış veya aşırı kısıtlayıcı kurallar 403 hatalarına yol açabilir.
  5. Sunucu Güvenlik Protokolleri : Bazı sunucular, belirli kullanıcı aracılarından veya tarayıcılardan gelen istekleri engelleyen güvenlik protokollerine sahip olabilir.

Teşhis koymak

HTTP 403 hatasının temel nedenini belirlemek için aşağıdaki adımları göz önünde bulundurun:

  1. URL'yi İnceleyin : Doğru URL'ye erişildiğinden ve yazım hatası olmadığından emin olun.
  2. Sunucu Günlüklerini İnceleyin : Sunucu günlükleri, belirli bir isteğin neden reddedildiğine ilişkin bilgiler sağlayabilir.
  3. .htaccess Dosyasını Kontrol Edin : Apache üzerinde çalışan web siteleri için, .htaccess dosyasını incelemek aşırı kısıtlayıcı kuralları tespit edebilir.

Nasıl Önlenir

HTTP 403 hatalarından kaçınmak, sunucu-istemci etkileşimlerinin sorunsuz olmasını sağlamak için proaktif adımları içerir:

  1. İzinleri Düzenli Olarak İnceleyin : Kullanıcıların gerekli kaynaklara erişebilmesini sağlamak için izinleri düzenli olarak kontrol edin ve ayarlayın.
  2. .Htaccess'i Dikkatlice Güncelleyin : .htaccess dosyasını değiştirirken bunu dikkatli yapın ve her zaman yedeklerini saklayın.
  3. Sunucu Güvenliğini İzleyin : İstenmeyen tıkanmaları önlemek için sunucu güvenlik protokolleri konusunda güncel kalın.

Nasıl düzeltilir?

Bir 403 hatasının ele alınması, altta yatan nedene bağlıdır:

1. İzinleri Ayarlayın

Erişim gerektiren kullanıcılara veya dizinlere doğru izinlerin verildiğinden emin olun. (devamını oku)

2. .htaccess sorunlarını düzeltin

  1. .htaccess Dosyanızı Yedekleyin : Herhangi bir değişiklik yapmadan önce daima .htaccess dosyasının yedeğini alın.
  2. Reddetme Yönergelerini Kontrol Edin : .htaccess dosyanızda herhangi bir Deny yönergesi olup olmadığına bakın. Varsa, 403 hatasına neden oluyor olabilirler. Örneğin: Order allow,deny Deny from all Bunu çözmek için, ya yönergeyi kaldırın ya da istenen trafiğe izin verecek şekilde değiştirin.
  3. Parola Koruması : Belirli dizinler AuthType , AuthName , AuthUserFile ve Require kullanılarak parola korumalıysa, bunlara erişmek için doğru kimlik bilgilerine sahip olduğunuzdan emin olun. Parola koruması istemiyorsanız bu yönergeleri yorumlayabilir veya kaldırabilirsiniz.
  4. Dosya İzinleri : Bu tam olarak bir .htaccess çözümü olmasa da dosya ve dizinlerinizin doğru izinlere sahip olduğundan emin olun. Birçok sunucu için tipik izin kurulumu şöyledir:
    • Klasörler: 755
    • Dosyalar: 644
    Özellikle dizinler için yanlış izinler 403 hatalarına yol açabilir.
  5. Dizin Listelemeleri : Dizin dosyası olmayan ( index.html veya index.php gibi) bir dizine erişmeye çalışıyorsanız ve dizin listelemeleri devre dışıysa 403 hatasıyla karşılaşabilirsiniz. Şunlardan birini yapabilirsiniz:
    • Dizine bir indeks dosyası ekleyin.
    • Dizin listelerini şununla etkinleştirin: Options +Indexes
  6. Mod_Rewrite Kuralları : Mod_rewrite kurallarını kullanıyorsanız bunların doğru yazıldığından emin olun. Yanlış kurallar bazen 403 hatalarına yol açabilir. Nedenin onlar olup olmadığını görmek için belirli kuralları yorumlayın.
  7. Dosya Kısıtlamalarını Kontrol Edin : Erişimi dosya adına göre kısıtlayan kuralları arayın, örneğin: <Files "secretfile.php"> Order allow,deny Deny from all </Files> Bu kuralları gerektiği gibi ayarlayın veya kaldırın.
  8. .Htaccess Sözdizimini Sağlayın : Yanlış yazılmış bir .htaccess dosyası veya geçersiz yönergelere sahip bir dosya 403 hatasına neden olabilir. Tüm direktiflerin ve sözdiziminin doğru olduğundan emin olun.

.htaccess dosyasında değişiklik yaptıktan sonra, güncellenmiş sonucu gördüğünüzden emin olmak için tarayıcınızın önbelleğini temizlemeyi veya farklı bir tarayıcı kullanarak test etmeyi unutmayın. Yukarıdaki çözümlerden hiçbiri sorunu çözmezse, 403 hatasıyla karşılaşmadığınız bir zamana ait .htaccess dosyasının yedeğini geri yüklemeyi düşünün.

3. IP Adreslerini Beyaz Listeye Alın

Suçlu IP engellemeyse, ilgili IP adresini beyaz listeye almayı düşünün.

.htaccess ile beyaz liste:

  1. Mevcut IP Engelleme Kurallarını Bulun : .htaccess dosyanızda IP adreslerini engelleyebilecek mevcut kuralları arayın. Bunlar şöyle görünebilir: Order Deny,Allow Deny from all Allow from 123.123.123.123 Bu örnekte, yalnızca 123.123.123.123 IP'sine izin verilir ve diğer tüm IP'ler reddedilir.
  2. Bir IP Adresini beyaz listeye almak : Belirli bir IP adresini beyaz listeye eklemek istiyorsanız, Allow from yönergesini kullanarak bunu ekleyebilirsiniz: Allow from YOUR.IP.ADDRESS.HERE YOUR.IP.ADDRESS.HERE değerini beyaz listeye eklemek istediğiniz IP adresiyle değiştirin. .
  3. Birden Çok IP Adresini Beyaz Listeye Alın : Beyaz listeye eklenecek birden fazla IP adresiniz varsa, birden fazla Allow from direktifi ekleyebilirsiniz: Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
  4. Bir IP Aralığını Beyaz Listeye Alın : Bir dizi IP adresiniz varsa, CIDR gösterimini veya joker karakterlerini kullanabilirsiniz: #Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.* Yukarıdaki örneklerin her ikisi de 123.123.123.0 ile 123.123.123.255 arasındaki tüm IP adreslerini beyaz listeye alın.
  5. Kaydet ve Test Et : Gerekli Allow from yönergelerini ekledikten sonra .htaccess dosyasını kaydedin ve ardından daha önce engellenen IP adresinden web sitenize erişmeyi deneyin. Artık erişilebilir olmalıdır.
  6. Tarayıcı Önbelleğini Temizle : En son değişiklikleri gördüğünüzden emin olmak için test sırasında her zaman tarayıcınızın önbelleğini temizleyin veya gizli/özel bir pencere kullanın.

iptables kullanma:

Ben. Geçerli iptables kurallarını yedekleyin : Herhangi bir değişiklik yapmadan önce mevcut iptables kurallarınızı yedeklemek iyi bir fikirdir.

 sudo iptables-save > /path/to/backupfile.txt

ii. Bir IP adresini beyaz listeye alın : Belirli bir IP adresinden gelen tüm trafiğe izin vermek için:

 sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT

YOUR.IP.ADDRESS.HERE kısmını beyaz listeye eklemek istediğiniz IP adresiyle değiştirin.

iii. Değişiklikleri kaydedin : Dağıtımınıza bağlı olarak şunları kullanabilirsiniz:

 sudo service iptables save

Veya:

 sudo iptables-save > /etc/sysconfig/iptables

ufw kullanma:

Ben. UFW'nin kurulu olup olmadığını kontrol edin : Kurulu değilse dağıtımınızın paket yöneticisini kullanarak kurabilirsiniz, örneğin:

 sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)

ii. UFW'yi Etkinleştir : Henüz etkinleştirilmemişse, UFW'yi şu şekilde açabilirsiniz:

 sudo ufw enable

iii. Bir IP adresini beyaz listeye alın : Belirli bir IP adresinden gelen tüm trafiğe izin vermek için:

 sudo ufw allow from YOUR.IP.ADDRESS.HERE

YOUR.IP.ADDRESS.HERE kısmını beyaz listeye eklemek istediğiniz IP adresiyle değiştirin.

iv. Kuralları doğrulayın : UFW kurallarını aşağıdakilerle kontrol edebilirsiniz:

 sudo ufw status

4. Barındırma Sağlayıcı Desteğini Arayın : Bazen barındırma sağlayıcınıza ulaşmak, sunucuya özgü sorunları tanımlamanıza ve düzeltmenize yardımcı olabilir.

İlgili Hatalar

HTTP 403'ü daha da bağlamsallaştırmak için şu ilgili HTTP durum kodlarını göz önünde bulundurun:

  1. HTTP 401 (Yetkisiz) : İstek, kullanıcı kimlik doğrulaması gerektiriyor.
  2. HTTP 402 (Ödeme Gerekli) : Gelecekte kullanılmak üzere ayrılmıştır, ödemenin gerekli olduğunu belirtir.
  3. HTTP 404 (Bulunamadı) : İstenen kaynak sunucuda kullanılamıyor.

Son olarak, HTTP 403 "Yasak" durum kodunun inceliklerini anlamak, optimum web etkileşimlerini sağlamak için hayati öneme sahiptir. Geliştiriciler ve kullanıcılar, bilgili ve proaktif kalarak olası tehlikelerin üstesinden gelebilir ve kusursuz web deneyimlerini sürdürebilirler.