Alleen toegestane HTTP-methoden doorlaten: Nginx blokkeert ongewenste verzoeken met 405/444
Tijdens het tailen van de logs van een webapplicatie komen we soms op dit moment.
- Ik dacht dat ik alleen
GET / POST / PUT / DELETEgebruikte - In de logs zie ik een methode die ik nog nooit eerder heb gezien
Bijvoorbeeld PROPFIND, een WebDAV-methode, verschijnt in de logs. De app zal het sowieso behandelen als een “niet-ondersteunde methode”. Maar het belangrijkste is dit:
Moet een hardwerkende applicatie zich toch bezig houden met ruis? Het antwoord is meestal “nee”. Daarom is het schoon om alleen toegestane methoden door te laten en de rest in Nginx te blokkeren.
Waarom moet het in Nginx worden geblokkeerd?
Je kunt het op applicatieniveau blokkeren, maar zodra een verzoek de app bereikt, zijn er al kosten gemaakt.
- WSGI/ASGI wordt aangeroepen
- Middleware, logging, authenticatie draaien deels
- De app-log wordt vervuild, waardoor echte problemen verborgen blijven
- Bij hoge traffic ontstaat onnodige belasting
Blokkeer je het in Nginx:
- Direct in de eerste lijn → minimale kosten
- App-logs blijven schoon → eenvoudiger beheer
- Aanvalsoppervlak verkleint → onnodige methoden worden geëlimineerd
Kort samengevat:
De app bouwt het product, Nginx fungeert als de poortwachter.
Onbekende methoden in de logs zijn meestal geen “normaal gebruik”
PROPFIND is een typische WebDAV-methode.
- Een scan die controleert of WebDAV is ingeschakeld
- Als
PUT/MKCOLper ongeluk open staat, probeert de scanner verder te gaan - Een lege User‑Agent of een vage HTTP/1.0‑verzoek komt vaak voor
Het belangrijkste punt:
Als onze service die methode niet gebruikt, is het vrijwel zeker geen legitieme traffic. Dus waarom de app laten reageren?
Strategie: een allowlist gebruiken

Het principe is simpel: open alleen wat nodig is, sluit de rest.
- Standaard webpagina’s/ statische bronnen: meestal
GETenHEAD - API: alleen
POST/PUT/PATCH/DELETEop de noodzakelijke eindpunten
Alle andere methoden (bijv. PROPFIND, MKCOL, LOCK) worden volledig geblokkeerd als we ze niet gebruiken.
405 vs 444: welke respons gebruiken?
Blokkering kan op twee manieren:
1) 405 Method Not Allowed
- Standaard, duidelijk voor legitieme clients
- Geeft aan dat de methode niet is toegestaan
2) 444 (Nginx‑specifiek: geen respons, verbinding sluiten)
- Sluit zonder bericht
- Geeft minder hints aan scanners/bots
- Rustig en schoon voor het beheer (verwijdert “ruis”)
In de praktijk:
- Onzinnige methoden op een publieke site: 444
- Legitieme clients die per ongeluk een fout maken: 405
Nginx‑configuratie‑voorbeeld: “alleen toegestane methoden” – twee patronen
Hieronder vind je een startpunt dat je meteen kunt kopiëren.
Patroon A) Standaard: alleen GET/HEAD, API extra toestaan
server {
# ... listen/server_name etc. ...
# 1) Standaard: web/ statische bestanden alleen GET/HEAD
location / {
if ($request_method !~ ^(GET|HEAD)$) { return 444; } # of 405
proxy_pass http://app;
}
# 2) API: alleen noodzakelijke methoden
location /api/ {
if ($request_method !~ ^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS)$) { return 444; }
proxy_pass http://app;
}
}
/is meestal voldoende met alleenGET/HEADvoor pagina’s./api/vereist vaakOPTIONSvanwege CORS.
Patroon B) Alleen “vreemde” methoden expliciet blokkeren (lichtgewicht start)
location / {
if ($request_method ~ ^(PROPFIND|PROPPATCH|MKCOL|COPY|MOVE|LOCK|UNLOCK)$) { return 444; }
proxy_pass http://app;
}
- Verwijdert meteen de meest voorkomende “ruis”‑methoden.
- Op de lange termijn is Allowlist‑methode (Patroon A) veiliger en makkelijker te beheren.
Opmerking:
ifin Nginx kan riskant zijn, maar voor een eenvoudige “direct return” is het gangbaar. Voor strengere controle kun jelimit_exceptgebruiken.
Conclusie: “Alleen toegestane methoden” maakt beheer eenvoudiger
De kern is simpel:
- Onbekende methoden zijn meestal geen legitieme traffic
- Door ze naar de app te sturen, ontstaan extra kosten en rommelige logs
- Blokkeer in Nginx met 405/444 en laat alleen de noodzakelijke methoden doorgaan
Met één patroon kun je:
- Minder belasting op de app
- Schone logs
- Eenvoudiger beheer
There are no comments.