Puncte:0

Uneori, cererea POST de la client la backend nu conține corp

drapel pr

Rulăm 2 aplicații diferite pe Heroku. Ambele au un API scris cu PHP și Symfony și rulează printr-un Apache. Unul dintre clienții frontend este scris cu Vue, celălalt cu Angular.

În API serializăm obiectele de comandă și interogare din corpul POST. Uneori, acest proces eșuează deoarece lipsesc câmpurile necesare. Știm acest lucru prin monitorizarea erorilor Sentry. Acolo putem analiza acele cereri și tuturor le lipsește în totalitate corpul.

Nu am reușit niciodată să reproducem acest caz.

Problema se întinde pe diferite puncte finale, diferite browsere, diferite dispozitive (mobile și desktop) fără nici un numitor comun, în afară de corpul cererii lipsă.

Există probleme cunoscute în aspectul rețelei, Apache sau Heroku, care ar crea acest comportament într-un caz limită, cum ar fi o conexiune foarte lentă? Ceea ce ar duce la redirecționarea unei cereri către backend fără body? Există vreun alt lucru fără aspectul aplicației care ar putea duce la acest lucru?

anx avatar
drapel fr
anx
Nu mi-aș face griji în legătură cu câteva solicitări ciudate care vin, care sunt concepute în mod intenționat pentru a verifica vulnerabilitățile de tip cerere de contrabandă. Anteturile precum `Sec-Fetch-*` și `X-Requested-With` vă pot ajuta să identificați un numitor comun în afara tipului de dispozitiv și a sistemului de operare.
anx avatar
drapel fr
anx
Ai configurat [NEL](https://www.w3.org/TR/network-error-logging/)? Dacă clientul este oprit de Heroku pentru că a trimis antete de solicitări ciudate ca urmare a unei erori în aplicația JavaScript, s-ar putea să vă raporteze eroarea.
drapel pr
@anx Solicitările sunt toate POST. Voi verifica antetele, mulțumesc pentru intrare. Nu cred că am configurarea NEL. Cum aș face asta cu Heroku? Ce antete ar sparge o solicitare, astfel încât să fie încă trimisă, dar să nu conțină un corp?
anx avatar
drapel fr
anx
Exemplele de manuale sunt `Transfer-Encoding: chunked` distracție și anteturi mari. Nu cred că acestea două sunt problema ta: setările implicite în apache și Heroku sunt rezonabile și interoperabile în acest sens. Dar afișați *anteturi de exemplu* și *configurația dvs. Apache*, poate că există un indiciu acolo.
anx avatar
drapel fr
anx
NEL partajează definiția punctului final al raportului cu CSP, iar datele primite ar fi probabil analizate de același software, așa că dacă aveți setate antete Content-Security-Policy, acesta ar fi punctul de a configura și NEL.

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.