HTTP 403 "Yasak": Nedenleri, Önlenmesi ve Düzeltilmesi
Yayınlanan: 2023-09-01- 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?
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:
- Yetersiz İzinler : Kullanıcı, sunucudaki belirli bir kaynağa erişmek için gerekli izinlere sahip olmayabilir.
- Coğrafi Kısıtlamalar : Bazı web içerikleri belirli bölge veya ülkelerdeki kullanıcılarla sınırlı olabilir.
- IP Engelleme : Sunucular, güvenlik endişeleri veya önceki şüpheli etkinlikler nedeniyle belirli IP adreslerini engelleyebilir.
- Katı .htaccess Kuralları : Apache sunucularındaki .htaccess dosyasındaki yanlış veya aşırı kısıtlayıcı kurallar 403 hatalarına yol açabilir.
- 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:
- URL'yi İnceleyin : Doğru URL'ye erişildiğinden ve yazım hatası olmadığından emin olun.
- Sunucu Günlüklerini İnceleyin : Sunucu günlükleri, belirli bir isteğin neden reddedildiğine ilişkin bilgiler sağlayabilir.
- .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:
- İ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.
- .Htaccess'i Dikkatlice Güncelleyin : .htaccess dosyasını değiştirirken bunu dikkatli yapın ve her zaman yedeklerini saklayın.
- 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
-
.htaccess
Dosyanızı Yedekleyin : Herhangi bir değişiklik yapmadan önce daima.htaccess
dosyasının yedeğini alın. - Reddetme Yönergelerini Kontrol Edin :
.htaccess
dosyanızda herhangi birDeny
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. - Parola Koruması : Belirli dizinler
AuthType
,AuthName
,AuthUserFile
veRequire
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. - 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
- Dizin Listelemeleri : Dizin dosyası olmayan (
index.html
veyaindex.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
- 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.
- 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. - .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:
- 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ızca123.123.123.123
IP'sine izin verilir ve diğer tüm IP'ler reddedilir. - 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. . - 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
- 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 de123.123.123.0
ile123.123.123.255
arasındaki tüm IP adreslerini beyaz listeye alın. - 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. - 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:
- HTTP 401 (Yetkisiz) : İstek, kullanıcı kimlik doğrulaması gerektiriyor.
- HTTP 402 (Ödeme Gerekli) : Gelecekte kullanılmak üzere ayrılmıştır, ödemenin gerekli olduğunu belirtir.
- 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.
Codeless'ın kurucu ortaklarından biri olarak, WordPress ve web uygulamaları geliştirme konusundaki uzmanlığımın yanı sıra barındırma ve sunucuları etkili bir şekilde yönetme konusundaki geçmişimi masaya getiriyorum. Bilgi edinme tutkum ve yeni teknolojileri inşa etme ve test etme tutkum beni sürekli yenilik yapmaya ve geliştirmeye sevk ediyor.
Uzmanlık:
Web Geliştirme,
Web Tasarımı,
Linux Sistem Yönetimi,
SEO
Deneyim:
Specular, Tower ve Folie gibi en popüler WordPress Temalarından bazılarını geliştirip tasarlayarak Web Geliştirme alanında 15 yıllık deneyim.
Eğitim:
Mühendislik Fiziği diplomam ve Malzeme Bilimi ve Opto Elektronik alanında MSC derecem var.
Twitter, Linkedin