2009-08-31 7 views
5

Ok, sto usando la penna per il bilanciamento del carico. I miei server Apache vedono l'IP remoto come l'IP del bilanciamento del carico. Ho bisogno del server Apache per poter vedere l'indirizzo IP del client per vari motivi. Posso usare X-Forwarded-For per farlo uscire da una pagina non criptata, ma non fa parte di una pagina SSL ...ajax/ssl/X-Forwarded-For

Quindi, non conoscendo Ajax, mi chiedo. Posso usare ajax per estrarre X-Forwarded-For da una pagina non crittografata e impostarla come variabile sul lato client? So che è possibile, mi sto solo chiedendo se qualcuno ha fatto questo, e ciò causa un errore di sicurezza nel browser.

Ho pensato che potevo reindirli a una pagina non-ssl, quindi inserire l'IP in un cookie, quindi tornare alla pagina SSL, ma penso che sia anch'io un hokey.

In ogni caso, anche l'altro modo per ottenere l'ip per lo script funzionerà. Ho provato http://stderr.net/apache/rpaf/, ma non è nemmeno a conoscenza dell'IP.

risposta

0

AJAX è limitato dalla politica della stessa origine e diversi protocolli sono considerati origini diverse, quindi non sarebbe possibile effettuare richieste HTTP AJAX dalla pagina HTTPS.

Il tentativo di farlo tramite altri mezzi potrebbe causare l'avviso di browser su contenuti misti sicuri e non protetti.

Inserire l'IP in un cookie sulla pagina HTTP (idealmente firmato o memorizzato nella sessione lato server a cui fa riferimento il cookie) funzionerebbe, ma non sarà altrettanto sicuro della lettura dell'IP effettivo della sessione SSL (poiché l'hacker potrebbe manipolare HTTP cookie e non è possibile impostare un cookie solo HTTPS).

Un'altra soluzione a questo è terminare SSL al servizio di bilanciamento del carico e inoltrarlo come traffico HTTP ad Apache.

Un altro approccio potrebbe essere l'utilizzo del bilanciamento del carico di livello inferiore - NAT - che conserva l'indirizzo di origine.