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.

Relaterede artikler