Czy PHP cURL może użyć adresu IP odwiedzającego?
Wyjaśnia, która maszyna otwiera połączenie cURL po stronie serwera i czego proxy potrzebuje, by zmienić tę trasę.
Odwiedzający klika przycisk. Twój serwer PHP wywołuje zewnętrzne API. API widzi połączenie wychodzące serwera albo wyjście proxy skonfigurowanego dla tego połączenia. Przeglądarka odwiedzającego obsługuje osobne połączenie z Twoją witryną.
Skopiowanie adresu odwiedzającego do nagłówka nie przeniesie połączenia PHP do sieci odwiedzającego. Nagłówki to dane wysyłane już ustanowionym połączeniem. Odbiorca może w swojej logice aplikacji użyć zaufanego nagłówka przekazywania, ale nie czyni to wartości nagłówka adresem źródłowym połączenia.
Proxy musi przyjąć połączenie
Aby wysłać PHP cURL przez inną maszynę, musi ona oferować osiągalną usługę proxy z uprawnieniem do przeniesienia żądania. Proces PHP musi móc się z nią połączyć. Zwykła sesja przeglądarki odwiedzającego nie daje Twojemu serwerowi takiego ogólnego punktu końcowego proxy.
Opcja proxy w libcurl wybiera usługę, z którą łączy się cURL. Nie może poprosić dowolnej przeglądarki o zainicjowanie żądania w swoim imieniu.
Żądanie z przeglądarki to inny projekt
Dla niektórych API przeglądarka może wywołać cel bezpośrednio. Umieszcza to żądanie na ścieżce sieciowej użytkownika, podlegając jego własnej konfiguracji proxy. Wymaga też API zaprojektowanego dla klientów przeglądarkowych. Dostęp między originami podlega CORS, a dane uwierzytelniające wysłane do kodu przeglądarki stają się dostępne dla tego klienta.
Zdecyduj, gdzie należy żądanie, zanim wybierzesz opcję proxy. Trzymaj dane uwierzytelniające serwera na serwerze; używaj udokumentowanej integracji z przeglądarką, gdy usługa ją obsługuje. Żaden z projektów nie daje niezawodnego skrótu, który pozwoliłby żądaniu serwera odziedziczyć tożsamość sieciową odwiedzającego.