- Spegnimento
- 23 settembre 2026 alle ore 10:21 UTC
- Autore
- Kamo
- Impegno
- 65f3228
in avanti() impostare l'outgoing X-Real-IP a X-Forwarded-For.split(",")[0] -- il primo piano a sinistra, che è l'unica parte di quell'intestazione che un cliente controlla outright: una richiesta che porta "X-Forwarded-For: 8.8.8.8" arriva a Traefik, che aggiunge l'indirizzo che ha effettivamente visto, e l'intestazione diventa "8.8.8.8, <real client>". EconsentController di SecurityService memorizza il verbatim X-Real-IP di questo gateway su un record legale e-consenso, quindi qualsiasi visitatore potrebbe attestare a qualsiasi indirizzo che gli è piaciuto solo inviando loro X-Forwarded-For. Aggiunto ClientIpResolver (com.kamo.api.app.config), che cammina la lista da destra e prende il primo tubo PUBLIC -- tutto a destra del cliente reale è la nostra infrastruttura, e un hop in-cluster è sempre privato e saltato. Questo è lo stesso algoritmo Esecuzione dell'accesso Filtro già aveva, privato a sé, per giudicare regole di accesso per IP; quel filtro ora delega alla classe estratta invece di conservare la propria copia, quindi avanti() e il filtro concordano con costruzione piuttosto che da due autori indipendentemente ottenere lo stesso nove linee a destra. X-Forwarded-Per se stesso è immutato -- ancora inoltrato come ricevuto (o sintetizzato dalla presa pari quando assente). La stessa regola di destra-most-public-hop è duplicata per-service attraverso il piattaforma (SecurityService's ClientIpResolver, ESigService's EsignClientIp, DocsService LegalClientIp) perché nessuno di questi i servizi sono importabili da un altro; questa è la copia di apiservice. XRealIp Verso Test guida una richiesta inoltrata reale che trasporta una spoofed hop sinistro davanti a una genuina e afferma la richiesta a monte X-Real-IP è l'indirizzo autentico, più che un hop interno allegato dopo che il vero cliente è saltato. ClientIpResolverTest copre il risolutore direttamente. Ritornare alla divisione più sinistra fallisce XRealIpForwarding Prova subito.
