Fehlercode 403 Forbidden: Bedeutung und Lösungen

Veröffentlicht:

15 Min. Lesezeit

Acar Diveroli
Autor: Acar Diveroli
Tor mit blauem 403-Schild, vier Prüfebenen; rote Anfragekarten stoppen an verschiedenen Ebenen, zwei 200-OK-Karten passieren

Sie klicken auf einen Link und landen auf einer fast leeren Seite: in großen Buchstaben „403 Forbidden“, darunter das Wort „nginx“. Eine andere Website formuliert dieselbe Absage als „You don't have permission to access this resource“. Und manchmal zeigt Chrome eine eigene graue Seite mit der Meldung, der Zugriff auf die Website sei verweigert worden, und ganz unten HTTP ERROR 403.

All das ist ein und derselbe HTTP-Statuscode: Der Server hat Ihre Anfrage erhalten, verstanden und beschlossen, sie nicht zu bedienen. Im Folgenden: wie sich 403 von 401 und 404 unterscheidet, wie Sie erkennen, wer Sie abgewiesen hat, was Sie als Besucher versuchen können, wie ein Website-Betreiber die Regel im Protokoll findet und wie Sie einen 403 im eigenen Code oder hinter einem Proxy richtig lesen.

Was bedeutet der Fehlercode 403 Forbidden?

Jede Antwort eines Webservers beginnt mit einem dreistelligen Statuscode. Codes im 400er-Bereich sagen, dass das Problem bei der Anfrage liegt, und 403 ist der Code für „Ich weiß, was Sie wollen, und die Antwort ist Nein.“ Der HTTP-Standard RFC 9110 beschreibt damit einen Server, der die Anfrage verstanden hat, sich aber weigert, sie zu erfüllen. Er darf in der mitgeschickten Seite erklären, warum, muss es aber nicht.

Der Standard ergänzt zwei Details. Waren Sie angemeldet, bedeutet ein 403, dass Ihr Konto für diese Seite nicht ausreicht; die Anfrage zu wiederholen, ändert daran nichts. Und ein Server, der verbergen will, dass es eine Seite überhaupt gibt, darf stattdessen 404 Not Found antworten.

Was ist der Unterschied zwischen 401, 403 und 404?

CodeNameWas der Server sagtWas meist hilft
401Unauthorized„Ich weiß nicht, wer Sie sind“Anmelden oder gültige Zugangsdaten senden
403Forbidden„Ich weiß es, und die Antwort ist Nein“Ein anderes Konto, ein anderes Netz oder die Erlaubnis der Website
404Not Found„Hier ist nichts“ oder „Das sage ich nicht“Die Adresse prüfen

Ein 401 muss einen Header mitbringen, der dem Browser sagt, wie die Anmeldung funktioniert. Ein 403 enthält keinen solchen Hinweis, deshalb hilft eine erneute Anmeldung nur, wenn der 403 von einer verlorenen Sitzung kommt. Ein 407 ist die Proxy-Version von 401: Nicht die Website, sondern Ihr Proxy will einen Benutzernamen und ein Passwort.

Wie entsteht ein 403, Schritt für Schritt?

Eine Anfrage passiert mehrere Kontrollpunkte, und jeder davon kann sie abweisen:

  1. Die Eingangstür. Ein CDN (ein Netz von Servern, das an vielen Standorten für die Website antwortet) oder eine Firewall prüft Ihre IP-Adresse, Ihr Land, die Zahl Ihrer Anfragen und die Anfrage selbst.
  2. Die Regeln des Webservers. nginx, Apache oder ein Load Balancer wendet seine Listen erlaubter und gesperrter Adressen und die .htaccess-Regeln an.
  3. Die Dateien. Der Server braucht die Berechtigung, die Datei zu lesen; ein Ordner ohne Indexseite (die Datei, die ein Ordner standardmäßig zeigt) wird abgewiesen statt aufgelistet.
  4. Die Anwendung. Der Code der Website prüft, ob Sie angemeldet sind und die Seite sehen dürfen.
  5. Die Absage. Der erste Kontrollpunkt, der Nein sagt, antwortet mit 403. Wer Nein gesagt hat, entscheidet darüber, wer es beheben kann.

Wie sieht die 403-Seite aus, und wer hat sie geschickt?

Das Aussehen der Seite verrät, welcher Kontrollpunkt Sie abgewiesen hat.

Was Sie sehenGesendet vonÜbliche Ursache
„403 Forbidden“, darunter „nginx“nginx, der Webserver der WebsiteDateiberechtigung, fehlende Indexseite oder eine Zugriffsregel
„403 Forbidden“, darunter „openresty“OpenResty, eine Variante von nginxWie bei nginx
„Forbidden“, „You don't have permission to access this resource.“ApacheDateiberechtigung, .htaccess-Regel oder ein Ordner ohne Indexseite
„403 Forbidden“, „Request forbidden by administrative rules.“HAProxy, ein Load BalancerEine Zugriffsregel am Load Balancer
„403 Forbidden“, „Microsoft-Azure-Application-Gateway/v2“Die Firewall von Azure Application GatewayEine Sicherheitsregel hat auf Ihre Anfrage gepasst
„Sorry, you have been blocked“, eine Ray IDCloudflareEine Sicherheitsregel, die die Website eingerichtet hat
„Der Zugriff auf … wurde verweigert“, „Du bist nicht zum Aufrufen dieser Seite autorisiert.“, „HTTP ERROR 403“Chrome oder EdgeDie Website hat einen 403 ohne eigene Seite geschickt

In der letzten Zeile spricht der Browser selbst: Kommt ein nackter 403 an, füllen Chrome und Edge den Bildschirm mit eigenem Text (hier in der deutschen Fassung von Chrome), der nichts über die Ursache sagt. Für die Cloudflare-Seite erklärt Sorry, You Have Been Blocked die Ray ID und was Sie der Website schicken sollten.

Warum bekomme ich einen 403-Fehler?

Aus Sicht des Besuchers sind das die üblichen Gründe:

  • Die Adresse zeigt auf einen Ordner oder eine private Datei, etwa einen Ordner ohne Indexseite oder eine Sicherungsdatei.
  • Sie sind nicht angemeldet, oder Ihre Sitzung ist abgelaufen. Ein Cookie, die kleine Datei, die eine Website in Ihrem Browser ablegt, um Sie wiederzuerkennen, ist vielleicht abgelaufen oder beschädigt.
  • Ihrem Konto fehlt die Berechtigung, etwa für ein geteiltes Dokument oder eine Admin-Seite.
  • Ihre IP-Adresse oder Ihr Land ist nicht zugelassen. Manche Behörden-, Bank- und Firmenwebsites nehmen nur Besucher aus bestimmten Ländern oder Netzen an, und manche sperren nach Missbrauch ganze Adressbereiche.
  • Ihre VPN-Adresse hat einen schlechten Ruf. Viele Menschen teilen sich eine VPN-Adresse; haben sich einige danebenbenommen, weisen Sicherheitssysteme womöglich alle ab, die dahinter stehen.
  • Ein Sicherheitsfilter hat bei der Anfrage angeschlagen. Eine Web Application Firewall (WAF) prüft jede Anfrage gegen Regeln, die Angriffe stoppen sollen, und ein Suchbegriff mit Zeichen wie ', -- oder <script> kann wie ein Angriff aussehen. Was ist eine WAF? erklärt, wie diese Filter entscheiden.
  • Eine Erweiterung hat die Anfrage verändert, etwa indem sie Header umschreibt oder Skripte blockiert.
  • Sie haben zu viele Anfragen gesendet. Manche Websites beantworten einen Ansturm mit 403 statt mit dem üblichen 429 Too Many Requests.

Fehlercode 403 beheben: Was Sie als Besucher tun können

Gehen Sie die Punkte der Reihe nach durch; die ersten dauern nur Sekunden.

  1. Adresse prüfen. Suchen Sie nach einem Tippfehler und rufen Sie die Seite dann über das Menü der Website auf.
  2. Einmal neu laden. Drücken Sie F5 oder die Schaltfläche Neu laden auf der Fehlerseite von Chrome. Browser heben einen 403 nicht zur Wiederverwendung auf, solange die Website es nicht ausdrücklich erlaubt; ein Neuladen fragt also wirklich neu an. Ändert sich nichts, hören Sie auf: Dutzende Versuche können eine Regel gegen zu viele Anfragen auslösen.
  3. Neu anmelden. Melden Sie sich ab und wieder an und öffnen Sie die Seite dann über die Startseite der Website.
  4. Die Cookies dieser Website löschen. In Chrome: Dreipunkt-Menü > Einstellungen > Datenschutz und Sicherheit > Drittanbieter-Cookies > Alle Websitedaten und -berechtigungen ansehen, nach der Website suchen und Löschen wählen (die Anleitung von Google). Damit werden Sie nur bei dieser Website abgemeldet.
  5. Ein privates Fenster probieren. In Chrome Dreipunkt-Menü > Neues Inkognitofenster (Strg + Umschalt + N). Es startet ohne die Cookies der Website, und Erweiterungen bleiben aus, sofern Sie sie dort nicht zugelassen haben. Öffnet sich die Seite, war ein Cookie oder eine Erweiterung die Ursache; schalten Sie die Erweiterungen unter Dreipunkt-Menü > Erweiterungen > Erweiterungen verwalten einzeln aus.
  6. VPN oder Proxy ausschalten oder das Netz wechseln. Trennen Sie das VPN und laden Sie neu, oder versuchen Sie es auf dem Smartphone über mobile Daten. Klappt es dann, lehnt die Website die Adressen dieses VPN ab.
  7. Die Website kontaktieren. Schicken Sie die genaue Adresse, die Uhrzeit, was Sie gerade getan haben, und jede Referenz auf der Seite, etwa eine Ray ID oder eine Incident ID.

Für einen 403, den eine Website mit Absicht setzt, gibt es keinen ehrlichen Trick, ihn zu umgehen. Lässt ein Dienst nur Besucher aus dem eigenen Land zu, führt der Weg hinein über das, was er selbst anbietet: ein Konto, eine offizielle App oder seinen Support.

Wenn es Ihre Website ist: Wie finden Sie die Ursache?

Klären Sie zuerst, wer geantwortet hat. Die Hinweise von Cloudflare zu Error 403 sagen es klar: Ein 403 ohne Cloudflare-Branding kam von Ihrem eigenen Server, typischerweise wegen Berechtigungsregeln, eines Firewall-Moduls wie mod_security oder IP-Sperrregeln; einer mit Cloudflare-Branding kam von einer Sicherheitsfunktion in Ihren Cloudflare-Einstellungen. Dieselbe Unterscheidung funktioniert bei jedem CDN und jeder Firewall.

Auf Ihrem eigenen Server nennt das Fehlerprotokoll den Grund. Durchsuchen Sie es nach der Minute, in der der 403 auftrat:

ProtokollzeileServerWas sie bedeutet
directory index of "/var/www/html/" is forbiddennginxEin Ordner ohne Indexseite; die Auflistung ist ausgeschaltet
open() "/var/www/html/index.html" failed (13: Permission denied)nginxDer Benutzer des Servers kann die Datei nicht lesen
access forbidden by rulenginxEine allow- oder deny-Regel hat gegriffen
AH01276: Cannot serve directory …: No matching DirectoryIndex …ApacheEin Ordner ohne Indexseite; Indexes ist ausgeschaltet
AH01630: client denied by server configurationApacheEine Require-Regel in der Konfiguration oder in .htaccess

Was zu beheben ist:

  • Berechtigungen. Der Benutzer des Webservers muss die Datei lesen und jeden darüberliegenden Ordner betreten können. Der Leitfaden von WordPress empfiehlt 755 oder 750 für Ordner und 644 oder 640 für Dateien. Setzen Sie nie 777: Damit kann jedes Konto auf dem Server die Datei ändern.
  • Eine fehlende Indexseite. Legen Sie eine index.html oder index.php an. Die Verzeichnisauflistung einzuschalten (autoindex on, Options +Indexes), beseitigt zwar den 403, zeigt aber jedem jede Datei im Ordner.
  • Zugriffsregeln. Prüfen Sie deny-, Require- und .htaccess-Zeilen, besonders nach einem Umzug zu einem neuen Hoster oder nach einem neuen Sicherheits-Plugin. Steht ein CDN vor der Website, stellen Sie sicher, dass keine Regel die Adressen des CDN selbst sperrt.
  • Hotlink-Schutz. Regeln, die andere Websites daran hindern, Ihre Bilder einzubinden, prüfen den Referer-Header, der die Seite nennt, von der eine Anfrage kam. Browser senden ihn nicht immer, lassen Sie Anfragen ohne ihn also durch.
  • Die Firewall. Öffnen Sie in Cloudflare die Sicherheitsseite Analytics (Analysen) der Website, wählen Sie den Tab Events (Ereignisse) und filtern Sie nach der IP-Adresse des Besuchers; das Stichprobenprotokoll zeigt die Aktion und die Funktion, die gegriffen hat. Azure Application Gateway antwortet mit 403, wenn seine WAF im Modus Prevention (Verhinderung) läuft; Microsofts Leitfaden zur Fehlerbehebung zeigt, wie Sie die Regel-ID finden und eine eng gefasste Ausnahme hinzufügen, statt die WAF abzuschalten.

Hängen Ihre Regeln vom Land ab, zeigt Ihnen ein Residential-Proxy mit Ausgang in diesem Land genau die Seite, die ein Besucher dort bekommt.

Wenn Sie einen 403 in Ihrem Code sehen

In einem Skript kommt der 403 als Statuscode an, und der Antworttext sagt oft mehr, als ein Browser anzeigt. Lesen Sie ihn zuerst. Die üblichen Ursachen:

  • Ein fehlender, abgelaufener oder falscher Schlüssel. APIs unterscheiden sich darin, wann sie 401 und wann 403 verwenden. Amazon API Gateway antwortet mit 403 bei einem ungültigen API-Schlüssel, einem abgelaufenen Token und einer Methode oder einem Pfad, den die API nicht hat; im letzten Fall lautet die Meldung „Missing Authentication Token“, was viele in die Irre führt.
  • Ein gültiger Schlüssel ohne die Berechtigung. Dem Token fehlt der Scope (Berechtigungsumfang), den dieser Endpunkt verlangt; es erneut zu senden, hilft nicht.
  • CSRF-Schutz. Damit andere Websites keine Formulare im Namen eines Nutzers absenden können (Cross-Site Request Forgery), lehnen Frameworks ein Absenden ohne das Token ab, das mit dem Formular ausgegeben wurde; Django antwortet mit 403 und „CSRF verification failed. Request aborted.“
  • Rate-Limit- und Bot-Regeln. Die API von GitHub antwortet nach Überschreiten ihres Rate Limits mit 403 oder 429 und x-ratelimit-remaining: 0 in den Headern. Die Firewall einer Website kann bei Datenverkehr, der automatisiert wirkt, dasselbe tun.

Bei einer Rate-Limit- oder Bot-Regel verhalten Sie sich wie ein Besucher, den die Website akzeptiert: Werden Sie langsamer, senden Sie einen User-Agent, der Ihr Tool und eine Kontaktadresse nennt, halten Sie sich an die robots.txt, nutzen Sie die offizielle API, wo es eine gibt, und bitten Sie um Erlaubnis, wenn Sie mehr brauchen. Die Header eines Browsers zu kopieren oder die IP-Adresse so lange zu wechseln, bis etwas durchkommt, richtet sich gegen die Entscheidung der Website; eine Lösung ist das nicht. HTTP-Statuscodes beim Web Scraping zeigt, welche Codes Sie erneut versuchen können und welche Stopp bedeuten.

Kam der 403 von Ihrem Proxy oder von der Website?

Hinter einem Proxy können zwei Server 403 sagen. Bei einer https://-Adresse bittet der Client den Proxy zuerst mit einer CONNECT-Anfrage, einen Tunnel zu öffnen. Lehnt der Proxy ab, etwa weil seine Regeln diesen Port nicht erlauben, hat die Website Sie nie gesehen. Öffnet sich der Tunnel und lehnt dann die Website ab, kommt der 403 mit den eigenen Headern der Website durch den Tunnel.

Die Python-Bibliothek Requests löst bei einem abgelehnten Tunnel einen ProxyError mit Tunnel connection failed: 403 Forbidden aus und gibt den 403 der Website als gewöhnliche Antwort zurück. Dieses Skript unterscheidet beides:

python
import requests

PROXY = "http://user:pass@pr.proxynet.io:8000"
PROXIES = {"http": PROXY, "https": PROXY}


def who_sent_403(url):
    try:
        r = requests.get(url, proxies=PROXIES, timeout=20)
    except requests.exceptions.ProxyError as err:
        if "Tunnel connection failed: 403" in str(err):
            return "the PROXY refused the tunnel; the site never saw the request"
        raise
    if r.status_code == 403:
        return f"the SITE answered 403 (Server: {r.headers.get('Server', 'not sent')})"
    return f"no 403, status {r.status_code}"


for url in ["https://httpbin.org/status/403", "https://httpbin.org:8443/"]:
    print(url, "->", who_sent_403(url))

Wir haben es auf unserem eigenen Computer ausgeführt (Python 3.13, Requests 2.34), über einen lokalen Test-Proxy, der Tunnel nur zu Port 443 öffnet, wie es viele Firmenproxys tun. Die erste Adresse ist eine öffentliche Testseite, die immer mit 403 antwortet:

text
https://httpbin.org/status/403 -> the SITE answered 403 (Server: gunicorn/19.9.0)
https://httpbin.org:8443/ -> the PROXY refused the tunnel; the site never saw the request

Einfache http://-Adressen nutzen keinen Tunnel, deshalb kommen beide Arten als normale Antworten an; der Server-Header und die Seite unterscheiden sie. Erlaubt eine Website Ihrem Crawler den Zugang, braucht ihre Freigabeliste (Allowlist) Adressen, die sich nicht ändern, und solche Adressen liefert ein ISP-Proxy.

Wo Ihnen ein 403 begegnen kann

  • Behörden-, Steuer- und Bankportale, aufgerufen aus dem Ausland oder über ein VPN.
  • Geteilte Dokumente und Admin-Bereiche, für die Ihr Konto nicht freigeschaltet ist.
  • Die Anmeldung mit einem Google-Konto im eingebauten Browser einer anderen App.
  • Bilder, die von einer Website mit Hotlink-Schutz eingebunden sind.
  • APIs nach einem Rate Limit sowie Preisbeobachtungs-Tools oder SEO-Crawler, die eine Firewall als Bots einstuft.

Häufige Fehler

  • Immer wieder den ganzen Cache leeren. Es kommt nur auf die Cookies dieser Website an.
  • Annehmen, die Website sei ausgefallen. Ein 403 heißt, dass der Server läuft und genau diese eine Anfrage ablehnt.
  • Betreiber: 777-Berechtigungen setzen oder die Verzeichnisauflistung einschalten, damit der Fehler verschwindet.
  • Betreiber: die Adressen des CDN sperren, per Firewall-Regel oder Sicherheits-Plugin.
  • Entwickler: einen 403 in einer engen Schleife wiederholen. Eine Absage ändert sich nicht, und jeder neue Versuch erhöht einen Zähler für das Rate Limit.

Entscheidungshilfe

Ihre LageWas tun
Eine schlichte „403 Forbidden“-Seite bei einer AdresseAdresse prüfen, das Menü der Website nutzen
Gestern ging es noch, als Sie angemeldet warenNeu anmelden, die Cookies dieser Website löschen
Im privaten Fenster funktioniert esDas verantwortliche Cookie oder die Erweiterung entfernen
Eine Ray ID oder Incident ID auf der SeiteMit der Uhrzeit an die Website schicken
Ihre Website, im Protokoll steht „Permission denied“Datei- und Ordnerberechtigungen korrigieren
Ihr Skript bekommt „Tunnel connection failed: 403“Der Proxy hat abgelehnt; Port und Ziel prüfen
Ihr Skript bekommt den 403 der WebsiteDen Antworttext lesen, langsamer werden, die offizielle API nutzen

Häufige Fragen

Bin ich an einem 403-Fehler selbst schuld?

Manchmal. Eine abgelaufene Sitzung, ein Cookie, eine Erweiterung oder Ihr VPN können Sie selbst in Ordnung bringen. Lehnt die Website Ihr Land, Ihr Netz oder Ihr Konto absichtlich ab, kann nur die Website das ändern.

Kann ein VPN einen 403-Fehler verursachen?

Ja, oft. VPN-Adressen teilen sich viele Nutzer, und manche Websites lehnen sie grundsätzlich ab oder nach Missbrauch aus demselben Adressbereich. Öffnet sich die Seite mit ausgeschaltetem VPN, lehnt die Website die Adresse des VPN ab.

Warum bekomme ich den 403 auf dem Smartphone, aber nicht am Computer?

Das Smartphone nutzt oft mobile Daten mit einer anderen IP-Adresse, eine VPN-App läuft vielleicht nur auf einem der Geräte, und jeder Browser hat seine eigenen Cookies. Probieren Sie das Smartphone im selben WLAN und löschen Sie dann die Daten der Website in dessen Browser.

Was bedeutet „403 disallowed_useragent“ bei der Anmeldung mit Google?

Google lehnt Anmeldungen in der eingebetteten Webansicht einer App (einem WebView) ab, weil die App mitlesen oder verändern könnte, was zwischen Ihnen und Google übertragen wird. Melden Sie sich in Ihrem normalen Browser an oder bitten Sie den Entwickler der App, das zu beheben.

Wie lange dauert eine 403-Sperre?

Eine Berechtigungs- oder Länderregel gilt, bis jemand sie ändert. Rate-Limit- und Bot-Regeln laufen meist nach Minuten oder Stunden ab; manche APIs nennen den Zeitpunkt in einem Header Retry-After oder x-ratelimit-reset.

Schadet ein 403 einer Website in der Google-Suche?

Ja, bei öffentlichen Seiten. Google indexiert keine Seiten, die mit einem 4xx-Code antworten, und entfernt bereits indexierte. Außerdem bittet Google Betreiber, 403 nicht zu nutzen, um seinen Crawler zu bremsen: 4xx-Codes außer 429 ändern die Crawling-Geschwindigkeit nicht.

Fazit

Ein 403 Forbidden bedeutet, dass ein Server Ihre Anfrage verstanden und beschlossen hat, sie nicht zu bedienen. Als Besucher prüfen Sie die Adresse, melden sich neu an, löschen die Cookies der Website, testen ein privates Fenster und schalten Ihr VPN aus; werden Sie weiter abgewiesen, wenden Sie sich an die Website. Als Betreiber klären Sie, wer geantwortet hat, und lesen dann das Fehlerprotokoll. Im Code lesen Sie den Antworttext und unterscheiden den 403 Ihres Proxys von dem der Website. Für Monitoring und Datenerhebung, die Websites akzeptieren, vergleichen Sie die Proxy-Typen auf unserer Proxy-Seite.

ChatGPT fragenClaude fragen