Kan PHP cURL bruge den besøgendes IP-adresse?
Forklar hvilken maskine der åbner en cURL-forbindelse på serversiden, og hvad en proxy skulle ændre for at ændre den rute.
En besøgende klikker på en knap. Din PHP-server kalder en ekstern API. API'en ser serverens udgående forbindelse, eller udgangen af den proxy, der er konfigureret til den forbindelse. Den besøgendes browser håndterer en separat forbindelse til dit website.
Kopiering af den besøgendes adresse ind i en header kan ikke flytte PHP-forbindelsen over på den besøgendes netværk. Headere er data, der sendes over en allerede etableret forbindelse. En destination kan bruge en betroet videresendelses-header i sin egen applikationslogik, men det gør ikke headerens værdi til forbindelsens kildearkitektur.
En proxy skal acceptere forbindelsen
For at sende PHP cURL gennem en anden maskine skal den maskine tilbyde en tilgængelig proxytjeneste med tilladelse til at bære anmodningen. PHP-processen skal kunne oprette forbindelse til den. En besøgendes almindelige browsersession giver ikke din server et sådant generelt proxy-endepunkt.
libcurl-proxyindstillingen vælger den tjeneste, cURL opretter forbindelse til. Den kan ikke bede en vilkårlig browser om at skabe anmodningen på dens vegne.
En browseranmodning er et andet design
For nogle API'er kan browseren kalde destinationen direkte. Det placerer anmodningen på brugerens netværkssti, underlagt deres egen proxykonfiguration. Det kræver også en API designet til browserklienter. Adgang på tværs af oprindelser følger CORS, og legitimationsoplysninger sendt til browserkode bliver tilgængelige for den klient.
Beslut, hvor anmodningen hører til, før du vælger en proxyindstilling. Hold serverlegitimationsoplysninger på serveren; brug en dokumenteret browserintegration, når tjenesten understøtter en. Ingen af designene giver en pålidelig genvej til at få en serveranmodning til at arve den besøgendes netværksidentitet.