Poate PHP cURL să folosească IP-ul vizitatorului?
Explică ce mașină deschide o conexiune cURL pe partea de server și ce ar trebui să schimbe un proxy pentru acea rută.
Un vizitator apasă un buton. Serverul tău PHP apelează un API extern. API-ul vede conexiunea de ieșire a serverului sau ieșirea proxy-ului configurat pentru acea conexiune. Browserul vizitatorului gestionează o conexiune separată către site-ul tău.
Copierea adresei vizitatorului într-un antet nu poate muta conexiunea PHP în rețeaua vizitatorului. Antetele sunt date trimise printr-o conexiune deja stabilită. O destinație poate folosi un antet de redirecționare de încredere în logica proprie a aplicației, dar asta nu transformă valoarea antetului în adresa sursă a conexiunii.
Proxy-ul trebuie să accepte conexiunea
Pentru a trimite PHP cURL prin altă mașină, acea mașină trebuie să ofere un serviciu proxy accesibil, cu permisiunea de a transporta cererea. Procesul PHP trebuie să se poată conecta la el. O sesiune obișnuită de browser a vizitatorului nu oferă serverului tău un astfel de punct final proxy general.
Opțiunea proxy din libcurl selectează serviciul la care se conectează cURL. Nu poate cere unui browser arbitrar să inițieze cererea în numele său.
O cerere din browser este un alt proiect
Pentru unele API-uri, browserul poate apela destinația direct. Asta pune cererea pe calea de rețea a utilizatorului, în funcție de configurația sa de proxy. De asemenea, necesită un API proiectat pentru clienți de browser. Accesul între origini respectă CORS, iar acreditările trimise către codul din browser devin disponibile acelui client.
Decide unde trebuie să ajungă cererea înainte de a alege o opțiune de proxy. Păstrează acreditările serverului pe server; folosește o integrare documentată în browser când serviciul o susține. Niciunul dintre proiecte nu oferă o scurtătură fiabilă pentru ca o cerere de server să preia identitatea de rețea a vizitatorului.