HTTP 403 „Verboten“: Ursachen, Vorbeugung und Behebung
Veröffentlicht: 2023-09-01- Was ist HTTP 403?
- Häufige Ursachen
- Diagnostizieren
- Wie man etwas vorbeugt
- Wie man es repariert
- Verwandte Fehler
HTTP 403 bedeutet „Verboten“ und zeigt an, dass die Anfrage des Clients vom Server verstanden wird, sich jedoch weigert, sie zu erfüllen.
Ziel dieses Artikels ist es, das Wesentliche von HTTP 403 zu beleuchten, die häufigsten Ursachen aufzudecken, durch die Diagnose zu führen und Präventions- und Lösungstechniken anzubieten.
Wir werden auch damit verbundene Fehler hervorheben, um ein umfassendes Verständnis zu ermöglichen.
Was ist HTTP 403?
HTTP 403 ist ein Statuscode, der „Verboten“ bedeutet. Wenn es auftritt, teilt es dem Client mit, dass der Server die Anfrage versteht, sich jedoch weigert, sie abzuschließen.
Im Gegensatz zum Status 401 „Nicht autorisiert“ , der sich auf Probleme bei der Benutzerauthentifizierung bezieht, weist der Fehler 403 darauf hin, dass die Authentifizierung möglicherweise erfolgreich war, der authentifizierte Benutzer jedoch immer noch nicht über die erforderlichen Berechtigungen für den Zugriff auf die angeforderte Ressource verfügt.
Häufige Ursachen
HTTP 403-Fehler können aus verschiedenen Gründen auftreten:
- Unzureichende Berechtigungen : Der Benutzer verfügt möglicherweise nicht über die erforderlichen Berechtigungen, um auf eine bestimmte Ressource auf dem Server zuzugreifen.
- Geografische Beschränkungen : Einige Webinhalte sind möglicherweise auf Benutzer aus bestimmten Regionen oder Ländern beschränkt.
- IP-Blockierung : Server blockieren möglicherweise bestimmte IP-Adressen aufgrund von Sicherheitsbedenken oder früheren verdächtigen Aktivitäten.
- Strenge .htaccess-Regeln : Falsche oder zu restriktive Regeln in der .htaccess-Datei auf Apache-Servern können zu 403-Fehlern führen.
- Server-Sicherheitsprotokolle : Einige Server verfügen möglicherweise über Sicherheitsprotokolle, die Anfragen von bestimmten Benutzeragenten oder Browsern blockieren.
Diagnostizieren
Berücksichtigen Sie die folgenden Schritte, um die Grundursache eines HTTP 403-Fehlers zu ermitteln:
- Überprüfen Sie die URL : Stellen Sie sicher, dass auf die richtige URL zugegriffen wird und dass keine Tippfehler vorliegen.
- Serverprotokolle prüfen : Serverprotokolle können Aufschluss darüber geben, warum eine bestimmte Anfrage abgelehnt wurde.
- Überprüfen Sie die .htaccess-Datei : Bei Websites, die unter Apache ausgeführt werden, kann die Überprüfung der .htaccess-Datei zu übermäßig restriktive Regeln identifizieren.
Wie man etwas vorbeugt
Um HTTP 403-Fehler zu vermeiden, sind proaktive Schritte erforderlich, um reibungslose Server-Client-Interaktionen sicherzustellen:
- Berechtigungen regelmäßig überprüfen : Überprüfen und passen Sie die Berechtigungen regelmäßig an, um sicherzustellen, dass Benutzer auf die erforderlichen Ressourcen zugreifen können.
- Aktualisieren Sie .htaccess sorgfältig : Gehen Sie beim Ändern der .htaccess-Datei vorsichtig vor und führen Sie immer Backups durch.
- Überwachen Sie die Serversicherheit : Bleiben Sie über Serversicherheitsprotokolle auf dem Laufenden, um versehentliche Blockaden zu verhindern.
Wie man es repariert
Die Behebung eines 403-Fehlers hängt von der zugrunde liegenden Ursache ab:
1. Passen Sie die Berechtigungen an
Stellen Sie sicher, dass Benutzern oder Verzeichnissen, die Zugriff benötigen, die richtigen Berechtigungen gewährt werden. (mehr lesen)
2. Beheben Sie .htaccess-Probleme
- Sichern Sie Ihre
.htaccess
Datei : Erstellen Sie immer eine Sicherungskopie der.htaccess
Datei, bevor Sie Änderungen vornehmen. - Auf Deny-Anweisungen prüfen : Suchen Sie in Ihrer
.htaccess
Datei nachDeny
Anweisungen. Wenn sie vorhanden sind, verursachen sie möglicherweise den Fehler 403. Beispiel:Order allow,deny Deny from all
. Um dieses Problem zu beheben, entfernen Sie entweder die Anweisung oder ändern Sie sie, um den gewünschten Datenverkehr zuzulassen. - Passwortschutz : Wenn bestimmte Verzeichnisse mit
AuthType
,AuthName
,AuthUserFile
undRequire
passwortgeschützt sind, stellen Sie sicher, dass Sie über die richtigen Anmeldeinformationen verfügen, um darauf zuzugreifen. Wenn Sie keinen Passwortschutz wünschen, können Sie diese Anweisungen auskommentieren oder entfernen. - Dateiberechtigungen : Auch wenn es sich hierbei nicht unbedingt um eine
.htaccess
Lösung handelt, stellen Sie sicher, dass Ihre Dateien und Verzeichnisse über die richtigen Berechtigungen verfügen. Für viele Server ist ein typisches Berechtigungssetup:- Ordner: 755
- Dateien: 644
- Verzeichnislisten : Wenn Sie versuchen, auf ein Verzeichnis zuzugreifen, das keine Indexdatei hat (wie
index.html
oderindex.php
) und Verzeichnislisten deaktiviert sind, erhalten Sie möglicherweise einen 403-Fehler. Du kannst entweder:- Fügen Sie dem Verzeichnis eine Indexdatei hinzu.
- Verzeichnislisten aktivieren mit:
Options +Indexes
- Mod_Rewrite-Regeln : Wenn Sie mod_rewrite-Regeln verwenden, stellen Sie sicher, dass diese korrekt geschrieben sind. Falsche Regeln können manchmal zu 403-Fehlern führen. Kommentieren Sie bestimmte Regeln aus, um festzustellen, ob sie die Ursache sind.
- Auf Dateieinschränkungen prüfen : Suchen Sie nach Regeln, die den Zugriff basierend auf dem Dateinamen einschränken, wie zum Beispiel:
<Files "secretfile.php"> Order allow,deny Deny from all </Files>
Passen Sie diese Regeln nach Bedarf an oder entfernen Sie sie. - Stellen Sie die .htaccess-Syntax sicher : Eine falsch geschriebene
.htaccess
Datei oder eine mit ungültigen Anweisungen kann einen 403-Fehler verursachen. Stellen Sie sicher, dass alle Anweisungen und die Syntax korrekt sind.
Denken Sie nach dem Vornehmen von Änderungen an der .htaccess
Datei daran, den Browser-Cache zu leeren oder einen Test mit einem anderen Browser durchzuführen, um sicherzustellen, dass Sie das aktualisierte Ergebnis sehen. Wenn keine der oben genannten Lösungen das Problem behebt, sollten Sie erwägen, eine Sicherungskopie der .htaccess
Datei von einem Zeitpunkt wiederherzustellen, als der Fehler 403 nicht auftrat.
3. IP-Adressen auf die Whitelist setzen
Wenn die IP-Blockierung die Ursache ist, sollten Sie erwägen, die betroffene IP-Adresse auf die Whitelist zu setzen.
Whitelist mit .htaccess:
- Suchen Sie nach vorhandenen IP-Blockierungsregeln : Suchen Sie in Ihrer
.htaccess
Datei nach vorhandenen Regeln, die möglicherweise IP-Adressen blockieren. Sie könnten wie folgt aussehen:Order Deny,Allow Deny from all Allow from 123.123.123.123
In diesem Beispiel ist nur die IP123.123.123.123
erlaubt und alle anderen IPs werden abgelehnt. - Eine IP-Adresse auf die Whitelist setzen : Wenn Sie eine bestimmte IP-Adresse auf die Whitelist setzen möchten, können Sie sie mit der Direktive
Allow from
hinzufügen:Allow from YOUR.IP.ADDRESS.HERE
Ersetzen SieYOUR.IP.ADDRESS.HERE
durch die IP-Adresse, die Sie auf die Whitelist setzen möchten . - Mehrere IP-Adressen auf die Whitelist setzen : Wenn Sie mehrere IP-Adressen auf die Whitelist setzen möchten, können Sie mehrere
Allow from
-Anweisungen hinzufügen:Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
- Setzen Sie einen IP-Bereich auf die Whitelist : Wenn Sie über einen Bereich von IP-Adressen verfügen, können Sie die CIDR-Notation oder Platzhalterzeichen verwenden:
#Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.*
Beide oben genannten Beispiele würden dies tun Setzen Sie alle IP-Adressen von123.123.123.0
bis123.123.123.255
auf die Whitelist. - Speichern und testen : Nachdem Sie die erforderlichen
Allow from
“-Anweisungen hinzugefügt haben, speichern Sie die.htaccess
Datei und versuchen Sie dann, über die zuvor blockierte IP-Adresse auf Ihre Website zuzugreifen. Es sollte nun zugänglich sein. - Browser-Cache leeren : Leeren Sie beim Testen immer Ihren Browser-Cache oder verwenden Sie ein Inkognito-/privates Fenster, um sicherzustellen, dass Sie die neuesten Änderungen sehen.
Verwendung von iptables
:
ich. Aktuelle iptables-Regeln sichern : Bevor Sie Änderungen vornehmen, empfiehlt es sich, Ihre aktuellen iptables
Regeln zu sichern.
sudo iptables-save > /path/to/backupfile.txt
ii. Eine IP-Adresse auf die Whitelist setzen : So lassen Sie den gesamten Datenverkehr von einer bestimmten IP-Adresse zu:
sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
Ersetzen Sie YOUR.IP.ADDRESS.HERE
durch die IP-Adresse, die Sie auf die Whitelist setzen möchten.
iii. Speichern Sie die Änderungen : Abhängig von Ihrer Distribution könnten Sie Folgendes verwenden:
sudo service iptables save
Oder:
sudo iptables-save > /etc/sysconfig/iptables
Verwendung von ufw
:
ich. Überprüfen Sie, ob UFW installiert ist : Wenn nicht, können Sie es mit dem Paketmanager Ihrer Distribution installieren, zum Beispiel:
sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)
ii. UFW aktivieren : Falls noch nicht aktiviert, können Sie UFW aktivieren mit:
sudo ufw enable
iii. Eine IP-Adresse auf die Whitelist setzen : So lassen Sie den gesamten Datenverkehr von einer bestimmten IP-Adresse zu:
sudo ufw allow from YOUR.IP.ADDRESS.HERE
Ersetzen Sie YOUR.IP.ADDRESS.HERE
durch die IP-Adresse, die Sie auf die Whitelist setzen möchten.
iv. Überprüfen Sie die Regeln : Sie können die UFW-Regeln überprüfen mit:
sudo ufw status
4. Suchen Sie Unterstützung beim Hosting-Anbieter : Manchmal kann die Kontaktaufnahme mit Ihrem Hosting-Anbieter dabei helfen, serverspezifische Probleme zu erkennen und zu beheben.
Verwandte Fehler
Um HTTP 403 weiter zu kontextualisieren, berücksichtigen Sie die folgenden verwandten HTTP-Statuscodes:
- HTTP 401 (nicht autorisiert) : Die Anfrage erfordert eine Benutzerauthentifizierung.
- HTTP 402 (Zahlung erforderlich) : Für zukünftige Verwendung reserviert, weist darauf hin, dass eine Zahlung erforderlich ist.
- HTTP 404 (Nicht gefunden) : Die angeforderte Ressource ist auf dem Server nicht verfügbar.
Abschließend ist es wichtig, die Feinheiten des HTTP 403-Statuscodes „Verboten“ zu verstehen, um optimale Webinteraktionen sicherzustellen. Indem sie informiert und proaktiv bleiben, können Entwickler und Benutzer potenzielle Fallstricke umgehen und ein nahtloses Web-Erlebnis gewährleisten.
Als einer der Mitbegründer von Codeless bringe ich Fachwissen in der Entwicklung von WordPress und Webanwendungen sowie eine Erfolgsbilanz in der effektiven Verwaltung von Hosting und Servern mit. Meine Leidenschaft für den Wissenserwerb und meine Begeisterung für die Konstruktion und Erprobung neuartiger Technologien treiben mich zu ständiger Innovation und Verbesserung.
Sachverstand:
Web Entwicklung,
Web-Design,
Linux-Systemadministration,
SEO
Erfahrung:
15 Jahre Erfahrung in der Webentwicklung durch die Entwicklung und Gestaltung einiger der beliebtesten WordPress-Themes wie Specular, Tower und Folie.
Ausbildung:
Ich habe einen Abschluss in technischer Physik und einen MSC in Materialwissenschaften und Optoelektronik.
Twitter, LinkedIn