Puncte:1

Ignorarea tuturor parametrilor URL pentru a consolida securitatea. Cum?

drapel us

Oricine pune un server NGINX online și se uită la el acces.log o săptămână mai târziu va găsi o mulțime de exploatări URL care sunt încercate. În fiecare zi, oricând.

Și dacă ar fi să resping toți parametrii URL. Ce se întâmplă dacă fiecare șir de interogare ar fi mascat cu un NGINX rescrie care nu ar putea să se potrivească cu nimic care nu este definit ca a rescrie returnând în mod natural un 404 Not Found?

Sau o serie de rescrieri în ordine plasate în interiorul acestui bloc de locație mereu prezent?

Locație / {
  rescrie ultimul „^/api/v1/users/?$” /api/v1/Users.php;
  rescrie „^/api/v1/users/(toate|active|inactive)?$” /api/v1/Users.php?status=$1 ultimul;
  rescrie „^/api/v1/users/(\d+)/?$” /api/v1/Users.php?userId=$1 ultimul;
}

# Exemple de potrivire URL...

http://localhost/api/v1/users
http://localhost/api/v1/users/

http://localhost/api/v1/users/all
http://localhost/api/v1/users/active
http://localhost/api/v1/users/inactive

http://localhost/api/v1/users/2001
http://localhost/api/v1/users/2002
http://localhost/api/v1/users/2003

Există o modalitate de a direcționa NGINX să ignore parametrii URL? Simțiți-vă liber să-mi spuneți dacă aceasta este o întrebare naivă. Poate pun o întrebare greșită.

Puncte:1
drapel mx

Mai degrabă folosiți întoarcere în loc de rescrie deoarece „Directiva de rescriere poate returna doar codul 301 sau 302”. Pentru aceasta, creați un Locație cu o expresie regulată pentru a prinde cererea specifică uri.

Și dacă doriți doar să renunțați la toate aceste solicitări, returnați a stare http 444.

Exemplu:

Server {
    #...
    locație ~* ^/api/v1/users/.*$ {
        întoarcere 444;
    }
}
suchislife avatar
drapel us
Puteți adăuga un exemplu de locație care transmite parametri ca în exemplele mele de „rescriere”? Nu am reușit niciodată să-l convertesc.
digijay avatar
drapel mx
Această expresie regulată ar trebui să se potrivească cu toate exemplele dvs. sau am omis ceva?
suchislife avatar
drapel us
Da. Ai oferit un exemplu care blochează. Aveam nevoie să văd un exemplu care să coexiste cu exemplul tău. Celelalte rescrieri s-au transformat în blocuri de locație.
digijay avatar
drapel mx
Cred că atunci când doriți să atribuiți referințe înapoi la diferiți parametri într-o redirecție, atunci „seria de rescrieri” este singura modalitate viabilă. Încă nu sunt sigur dacă am înțeles exact ce încerci să obții, îmi pare rău.

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.