Puncte:0

Cât de fiabilă este „gazdă” într-o solicitare HTTPS primită?

drapel us

Încerc să înțeleg ce nivel de încredere pot avea atunci când API-ul meu se află la api.foo.com primește o solicitare POST de la o pagină care are foo.com specificat ca fiind gazdă valoare din antet.

Mai exact - este ceva care poate fi falsificat (poate chiar este cumva ușor de falsificat?) sau este dificil (imposibil?) pentru cineva să îi trimită ceva api.foo.com dintr-o locație complet alternativă și falsificare în antetul care este gazda foo.com?

Dacă nu este dificil sau imposibil, atunci care este mecanismul standard al industriei pentru a verifica dacă cererea provine dintr-un loc de încredere?

Puncte:2
drapel us

The Gazdă antetul face parte din cererea HTTP care specifică gazda virtuală de pe serverul web căreia i se face cererea.

Nu are nicio legătură cu sursa cererii. Oricine poate face o solicitare HTTP / HTTPS către serverul dvs. web și poate specifica google.com în Gazdă antet. Apoi rămâne la latitudinea serverului dvs. web să decidă ce vrea să facă cu cererea.

Browserele adaugă de obicei HTTP Referitor antetul la solicitări, care indică care este pagina sursă care a furnizat adresa URL pentru această solicitare. In orice caz, Referitor câmpul este, de asemenea, o intrare de utilizator nesigură și poate fi falsificat cu ușurință.

Un exemplu:

Utilizatorul vizitează http://www.example.com/example site-ul web, care are un hyperlink către http://www.example.org. Utilizatorul face clic pe link. Browserul utilizatorului trimite cererea la adresa IP a www.example.org, cu următoarele antete HTTP:

Gazdă: www.example.org
Referer: http://www.example.com/example

Recent, browserele au început să se dezbrace Referitor conținutul antetului, astfel încât să conțină numai adresa URL rădăcină: http://www.example.com, atunci când faceți solicitări pe mai multe domenii.

În general, nu puteți avea încredere în niciun antet de solicitare HTTP pentru a conține exact datele pe care le așteptați, deoarece este o intrare de utilizator nesigură.

Puncte:1
drapel cz

Gazda: antetul cererii (RFC 7230 § 5.4) este intrare de utilizator nesigură. Este furnizat de agentul utilizator pentru a indica gazda (virtuală) căreia i se referă solicitarea HTTP. Orice agent utilizator rău intenționat se poate conecta la serverul dvs. și poate face o solicitare cu un antet Host: invalid.

Sunteți menit să validați că conținutul antetului Gazdă: corespunde numelui dvs. de gazdă real înainte de a procesa cererea. În mod normal, serverul web (nginx, Apache etc.) se ocupă de acest lucru pentru tine și apoi transmite cererea aplicației tale.Dar dacă expuneți aplicația direct la Internet, nu în spatele unui server web obișnuit, atunci trebuie să o validați singur.

Yevgeny Simkin avatar
drapel us
așteptați - deci - serverul web * poate valida că apelul vine într-adevăr de la foo.com și nu de la ceva care a blocat foo.com în antet? Știți unde pot citi despre cum funcționează și cât de fiabil este acesta? Sau te inteleg gresit?
Michael Hampton avatar
drapel cz
Aceasta este una dintre cele mai de bază funcții ale serverului web. Ai mai instalat unul? Vedeți, de exemplu, https://nginx.org/en/docs/http/request_processing.html
user10489 avatar
drapel nc
„poate valida că apelul vine într-adevăr de la foo.com și nu de la ceva care a blocat foo.com în antet” Cred că gazda nu este de unde este *de la*, este de unde este *spre*... în cu alte cuvinte, cererea de la distanță solicită foo.com, care ar trebui să fie unul dintre aliasurile de gazdă (dar ar putea să nu fie).

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.