Guides 5 min. leestijd

403 Forbidden-fout: wat betekent het en hoe los je het op?

Een 403 betekent dat de server het verzoek begreep en het weigerde. De gebruikelijke oorzaken, wat bezoekers kunnen proberen, hoe site-eigenaren de blokkerende regel vinden en waarom monitors 403’s krijgen die browsers niet zien.

Een 403 Forbidden-fout betekent dat de server het verzoek heeft ontvangen, het heeft begrepen en weigert het te beantwoorden. Anders dan bij een 401 helpt inloggen niet per se: de server zegt dat deze client, vanaf dit adres, met deze rechten, deze resource niet mag hebben. De oorzaak is bijna altijd een regel, geen crash: bestandsrechten, een ontbrekend indexbestand, een deny-regel in de serverconfiguratie, een firewall of botbescherming, een IP- of landblokkade, of een account zonder de juiste rol. Site-eigenaren vinden de regel in de foutlog of in de eventlog van de firewall; bezoekers kunnen meestal alleen veranderen wat ze versturen.

403 vs 401 vs 404

CodeWat de server zegtWat helpt401 UnauthorizedWie ben je? Stuur inloggegevens mee.Inloggen, of een geldige API-sleutel of token403 ForbiddenIk weet wat je wilt, en dat krijg je niet.Andere rechten, een ander adres of een ander verzoek404 Not FoundHier is niets.Het juiste adres

Servers houden zich niet altijd aan het boekje. Sommige antwoorden 404 in plaats van 403 om te verbergen dat een privépagina bestaat, en sommige antwoorden 403 voor bestanden die ontbreken: een privé-storagebucket kan bijvoorbeeld 403 antwoorden voor een object dat er niet is, als de client de inhoud van de bucket niet mag opvragen. Het overzicht van HTTP-statuscodes heeft de rest.

Veelvoorkomende oorzaken

Rechten op bestanden en mappen. De gebruiker van de webserver kan het bestand niet lezen of de map niet openen, vaak na een upload of een deploy die bestanden als een andere gebruiker heeft gekopieerd.

Geen indexbestand. Een verzoek voor een map zonder index.html of index.php, op een server waar directory listing uitstaat, levert een 403 op. Een mislukte deploy die de map leeg heeft achtergelaten doet hetzelfde.

Deny-regels. Een deny all in nginx, een Require all denied in Apache, of een regel in .htaccess die een pad, een bestandstype of een user agent blokkeert.

Een firewall of botbescherming. Een WAF, de botbescherming van een CDN of een beveiligingsplug-in vindt dat het verzoek er geautomatiseerd of kwaadaardig uitziet en blokkeert het, soms met een challengepagina.

IP- en landblokkades. Het adres, het netwerk of het land van de bezoeker staat op een blokkadelijst, of de pagina is beperkt tot een kantoornetwerk of VPN.

Ontbrekende rechten. De bezoeker is ingelogd, maar zijn rol geeft geen toegang tot de pagina, of een API-sleutel mist de scope voor het endpoint.

Verlopen of foute ondertekende links. Downloadlinks met een handtekening of een vervaltijd antwoorden 403 zodra ze verlopen zijn.

Hotlinkbescherming. Afbeeldingen of bestanden die vanaf een andere site worden opgevraagd, of zonder de verwachte Referer, worden geweigerd.

Wat bezoekers kunnen proberen

Controleer het adres. Een link die eindigt op een map in plaats van een pagina, of een verkeerd getypt pad, kan uitkomen bij een map die de server niet wil tonen.

Log in, of log in met het juiste account. Sommige sites tonen een 403 aan bezoekers die niet zijn ingelogd, of aan accounts zonder toegang.

Wis de cookies van de site en herlaad. Een oude sessie of een verouderde challengecookie kan ervoor zorgen dat een firewall je blijft weigeren.

Wissel van netwerk. Zet een VPN of proxy uit, of juist aan, of probeer mobiele data. Gedeelde adressen en datacenteradressen worden vaker geblokkeerd dan thuisverbindingen.

Schakel extensies uit voor de site. Sommige privacy-extensies passen headers aan op een manier die een firewall triggert.

Laat het de eigenaar van de site weten, met het tijdstip en het eventuele referentienummer op de foutpagina. Met dat nummer vinden ze precies de juiste regel.

Zo vinden en verhelpen site-eigenaren het

Zoek eerst uit wie er antwoordde. Bekijk de foutpagina en de response-headers: een CDN of firewall maakt zich meestal bekend, met een pagina in de eigen huisstijl, een Server-header of een request-ID. Is het je eigen webserver, dan staat de reden in de foutlog. Is het de CDN of WAF, dan staat hij in de eventlog daarvan.

Rechten en indexbestanden

Op Linux-hosts hebben mappen meestal 755 nodig en bestanden 644, met als eigenaar de gebruiker waaronder de webserver of PHP draait. Controleer eerst voordat je iets verandert, en los een 403 nooit op met 777, want daarmee kan elke gebruiker op de server naar je site schrijven:

ls -la /var/www/example.com/public
find /var/www/example.com/public -type d -exec chmod 755 {} +
find /var/www/example.com/public -type f -exec chmod 644 {} +

nginx logt ‘directory index of … is forbidden’ als een map geen indexbestand heeft; Apache logt dat het geen index kan vinden en dat directory listing uitstaat. Controleer of de deploy de bestanden heeft gezet op de plek waar de document root van de server naar wijst.

Serverregels

nginx logt ‘access forbidden by rule’ bij een deny, en Apache logt ‘client denied by server configuration’ bij een Require-regel. Doorzoek de configuratie en elke .htaccess op het pad naar de bijbehorende regel. In WordPress herschrijft het opslaan van de permalinkinstellingen het kerngedeelte van .htaccess, en beveiligingsplug-ins voegen daar en in hun eigen instellingen hun eigen blokkades toe.

Firewalls, CDN’s en beveiligingsplug-ins

Zoek het geblokkeerde verzoek op in de eventlog op tijdstip, adres of request-ID, kijk welke regel van toepassing was en beslis of de regel fout is of het verzoek echt ongewenst was. Voeg uitzonderingen toe voor specifieke adressen of paden in plaats van een regel voor de hele site uit te zetten. Test na een wijziging aan de firewall vanaf een netwerk buiten je kantoor, want je eigen adres staat misschien op de allowlist.

Waarom een monitor een 403 krijgt en je browser niet

Een bekend scenario: de site werkt bij jou, maar je uptime monitor meldt een 403. Meestal is er niets kapot. Iets vóór de site ziet de check als een bot, en dat is hij ook:

Botbescherming. CDN’s en WAF’s leggen een challenge voor aan clients die geen JavaScript uitvoeren of er geautomatiseerd uitzien. Een browser lost de challenge op; een monitor kan dat niet en krijgt dus een 403 of een challengepagina.

Datacenteradressen. Monitors checken vanaf servers, en sommige regels blokkeren hostingnetwerken standaard.

Landblokkades. Een site die alleen bezoekers uit het eigen land toelaat, blokkeert een monitor die vanuit het buitenland checkt.

Rate-regels. Sommige firewalls antwoorden 403 in plaats van 429 als een client te veel verzoeken doet.

De oplossing is de monitor op de allowlist zetten, bij voorkeur op IP-adres, want iedereen kan een user agent kopiëren. Los het niet op door 403 voor de hele site als ‘up’ te accepteren: dan valt een echte blokkade van je bezoekers niet meer op. Moet een pagina echt achter de bescherming blijven, monitor dan een health check endpoint daarbuiten. De gids over minder valse alerts behandelt andere oorzaken van alerts die geen storing zijn.

403-fouten en Uptimecheck

Een HTTP(S)-monitor in Uptimecheck uptime monitoring telt statussen van 200 tot en met 399 standaard als up, dus een 403 telt als down. Een tweede check bevestigt dat voordat je een alert krijgt, en het incident legt uit wie er antwoordde: komt de 403 of een challengepagina van Cloudflare, Sucuri, Imperva, Akamai, DataDome, Vercel, Wordfence of AWS WAF, dan noemt het die dienst en wat je daar moet toestaan. Websitechecks komen uit Stockholm, Zweden, met een user agent die ‘Uptimecheck’ bevat. Uptimecheck toestaan in je firewall somt onze adressen op met kant-en-klare regels voor Cloudflare, WordPress-beveiligingsplug-ins en nginx, en waarom een monitor down kan zijn terwijl de site werkt behandelt de andere redenen.

Wil je weten of een site überhaupt antwoordt? De gratis Is it down?-checker telt elk antwoord onder de 500, een 403 inbegrepen, als up: de server heeft gereageerd, ook al weigerde hij.

Onderscheid een geblokkeerde check van een echte storing. Probeer Uptimecheck 14 dagen gratis, geen creditcard nodig.

Vragen

Wat betekent 403 Forbidden?

De server begrijpt het verzoek, maar weigert het voor deze client te beantwoorden, vanwege rechten, een regel, een firewall of een adresblokkade. Hetzelfde verzoek herhalen helpt niet.

Wat is het verschil tussen 401 en 403?

Een 401 vraagt de client om zich te authenticeren, dus geldige inloggegevens kunnen het oplossen. Een 403 weigert het verzoek ook met de meegestuurde inloggegevens, dus er zijn andere rechten, een ander adres of een wijziging op de server nodig.

Hoe los ik een 403-fout op mijn website op?

Kijk wie er antwoordde: de foutlog van je webserver, of de eventlog van de CDN of firewall. Los daarna de oorzaak op die daar staat, meestal bestandsrechten, een ontbrekend indexbestand, een deny-regel of een firewallregel.

Waarom krijgt mijn uptime monitor een 403 terwijl de site werkt?

Botbescherming, een firewall of een landblokkade ziet de check als een bot. Zet de IP-adressen van de monitor op de allowlist in de firewall of CDN, of monitor een endpoint buiten de bescherming.

Lees verder

Guides 5 min. leestijd

429 Too Many Requests: rate limits, Retry-After en backoff

Een 429 betekent dat een client te veel verzoeken in te korte tijd heeft gestuurd. Hoe rate limits werken, wat Retry-After zegt, hoe je terugschakelt en waarom een uptime monitor er een kan krijgen.

Lezen

Downtime is verleden tijd.

Stel je eerste monitor in binnen een minuut, of kijk eerst rond in de live demo.

14 dagen gratis proberen · Daarna gratis met 5 monitors · Geen creditcard