Puncte:0

Returnați 444 în loc de 400

drapel mt

Dacă cineva face o solicitare http către o resursă https de pe serverul meu nginx, primește o eroare 400. „Solicitarea HTTP simplă a fost trimisă la portul HTTPS” Există o modalitate de a returna 444?

Când caut această eroare, pot găsi doar persoane care au avut probleme de configurare pe care încercau să le rezolve. Dar, în cazul meu, configurația mea este în regulă - încerc să minimizez impactul cererilor nelegitime.

Editare: folosesc acest lucru pentru a preveni accesul direct IP la serverul meu. Dacă cineva face o solicitare http, primește răspunsul 400 în loc de 444. Nu vreau doar niciun răspuns.

Server {
    asculta 443 ssl http2 default_server;
    asculta [::]:443 ssl http2 default_server;
    ssl_certificate /etc/nginx/ssl/n.pem;
    ssl_certificate_key /etc/nginx/ssl/n2.pem;
    numele serverului _;
    întoarcere 444;
}
drapel vn
Probabil că acest lucru trebuie abordat la nivel de aplicație.
Gerard H. Pille avatar
drapel in
Ar fi bine să nu răspunzi deloc. Trimiterea http către portul https necesită efort, cu greu poate fi o greșeală.
drapel mt
Asta încerc să-mi dau seama cum să fac. Cum nu răspund deloc, în loc să returnez eroarea 400?
Michael Hampton avatar
drapel cz
nginx gestionează acest scenariu intern. Nu este ceva ce poți (sau ar trebui) să controlezi.
Puncte:0
drapel cn

Este posibil ca nginx să răspundă cu 444 astfel:

error_page 497 =444 /444.html;

locație = /444.html {
        întoarcere 444;
}
Michael Hampton avatar
drapel cz
De unde vine eroarea 497?
devitrified avatar
drapel cn
497 este codul de eroare pentru cererea HTTP trimisă la portul HTTPS (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
Michael Hampton avatar
drapel cz
Interesant. Nu am văzut niciodată că nginx trimite acel cod (și trimite 400 pe cutiile mele de producție). Când a fost adăugat și/sau cum îl activați?
devitrified avatar
drapel cn
Nu este documentat oficial, așa că sunt disponibile foarte puține informații
Michael Hampton avatar
drapel cz
Chiar ai incercat sa vezi daca functioneaza?
devitrified avatar
drapel cn
Desigur, de aceea l-am postat aici. Dacă utilizați un port non-standard pentru https, veți primi păianjeni Baidu și alții să îl lovească în cele din urmă. Ei obțin 444 cu această soluție
Michael Hampton avatar
drapel cz
OK, deci cum îl faci să funcționeze de fapt?
devitrified avatar
drapel cn
Doar copiați/lipiți aceste linii în blocul serverului și reporniți nginx
Michael Hampton avatar
drapel cz
Pe ce versiune de nginx?
devitrified avatar
drapel cn
Folosesc nginx/1.15.8
Michael Hampton avatar
drapel cz
Este și mai ciudat, pentru că tocmai l-am încercat pe 1.20.0 și returnează 400, nu 497. Poate că acest lucru a fost eliminat din cod.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.