Hur Kan Jag Fixa Var Och En Av Våra Omdirigerade X För En Java Servlet?

Skaffa PC-reparationsmjukvaran som alla pratar om. Ladda ner här.

Här är några enkla beslut för att fixa det omdirigerade x-erbjudandet för Java Servlet.

Jag känner att jag inte är en webbgränssnittsutvecklare … jag är en teknisk officer. Men när jag presenterade en fungerande BigIP LTM-lastbalanserare verkar jag ha skadat vissa webbapplikationer, framför allt kreditkortsapplikationer för konsumenter, som vill vara värd för att äntligen hitta IP:n för den anständiga applikationen.

Ett exempel på HTML-kod för en servlet att visa hög kan kontrollera klientens IP-adress så här:

  klienttjänst void (HttpServletRequest req, HttpServletResponse res) 
kastar IOException
String implicerar ip req.getRemoteAddr ();

Koden som experter upptäcker bryter BigIP är getRemoteAddr () . Vanligtvis skyddar denna procedur IP-hjälp från HTTP, varigenom REMOTE_ADDR-ramverket ändrar vidarebefordran som hänför sig till begäran. Basprefixet i bör något ändra getRemoteAddr () , som hämtar hela IP-adressen från X-Forwarded-For-HTTP-huvudet. Observera dock att du förmodligen INTE vill använda den här koden lätt som den är, utan den måste fungera som en speciell pärla så att du kan hjälpa dig att komma igång i en enda större class.cce, som borde undersöka min existensen av X-Forwarded-For. Var uppmärksam på fel och överväg också valet att hantera flera IP-adresser under just denna rubrik. Detta kan visa sig när dina goda kunder går under flera proxyservrar som stöder dessa rubriker.

  tomt offentligt stöd (HttpServletRequest req, HttpServletResponse res) 
IOException inkluderar
String IP-matchningar req.getHeader ("X-Forwarded-For");

  • Om din servlet körs helt och hållet i förhållande till en webbserver som är associerad med en omvänd proxy eller strömbalanserare, kan den webbproxyn utformas för att inkludera en begäranshuvud som inkluderar en IP-adress som anger vem din kom med från. förfrågan. Olika ångra proxyer introducerar olika rubriker. Konsultcertifiering för din värdefulla server (frontend).

  • Om din klient använder denna proxy (omdirigering), kan den förklara rubriker för att indikera klientens IP … eller inte. Att infoga en IP-åsidosättning kanske inte är korrekt. Värde

  • Hämta genom att prata request.getRemoteAddr () kommer alltid att vara det direkta ursprungliga IP-valet ovanför begäran.

Ingen av rubrikerna du listade blir standard, förutom att “x-forwarded-for” är hela de facto-standarden; det vill säga, det hela kommer med största sannolikhet att försöka applicera fullmakter och liknande … då något injiceras.

Slutligen, även om du hade en IP-adress, vem har inte nödvändigtvis hjälpt dig. För en situation i punkt, om klienten stannar på dessa privata nätverk och ansluter till vårt Internet via en NAT-gateway, då är bara IP-adressen här i din HTTP-förfrågan NAT-URL:n för servern … inte varje klients faktiska IP-adress.


x forwarded for cup of joe servlet

Vad betyder allt detta? I rättvisans namn betyder detta att du i allmänhet inte kan hitta dessa IP-adresser till det system som alla förfrågningar kommer från.

I Java bör du kunna så att den kommer att använda HttpServletRequest use.getRemoteAddr () för att få IP-adressen som pekar till huvudklienten som kommer åt din Java-webbapplikation.

 importera javax.servlet.http.HttpServletRequest;Radens ipAddress tar hänsyn till request.getRemoteAddr (); 

an. Proxy eller Cloudflare

För planetprocesser bakom en proxy, fettbalanserare eller populär Cloudflare-lösning, använd det mesta av X-Forwarded-For (XFF) HTTP-förfrågningshuvudet.

 importera javax.servlet.http.HttpServletRequest;// ...privat statiskt företag getClientIp (HttpServletRequest)        String remoteAddr betyder "";        if (request! implies null) ".equals (remoteAddr))                motsvarar remoteAddr-begäran. gepemoteaddr ();                           Returnera RemoteAddr;     

2. Fungerar du fortfarande inte?

Vanligtvis kontrollerar och begär de den viktigaste HTTP-headern från klienten samt försöker avgöra var den samlade IP-adressen beaktas.

Uppdaterad:

Reagerar din dator? Oroa dig inte, Reimage är här för att hjälpa dig. Med bara några klick kan vår programvara skanna ditt system efter problem och åtgärda dem automatiskt. Så du kan komma tillbaka till jobbet så snabbt som möjligt. Låt inte ett litet fel hålla dig tillbaka - ladda ner Reimage idag!

  • Steg 1: Gå till Reimage-webbplatsen och klicka på knappen "Ladda ner"
  • Steg 2: Följ instruktionerna på skärmen för att installera Reimage
  • Steg 3: Öppna Reimage och klicka på knappen "Skanna nu"

  •      icke-public sträng> map  map  ();        Uppräkningsrubriker = request.getHeaderNames ();        många (headerNames. hasmoreelements ()) String Key betyder (String) headerNames.nextElement ();            Strängvärde = request.getHeader (nyckel);            result.put (nyckel, värde);                Returnera resultatet;    

    x vidarebefordrat för espressoservlet

    Exempel på begäranshuvud för WebSubmit för Cloudflare.

         "Referrer": "https://www.google.com/",    "cf-ipcountry": "USA",    "cf-ray ":" 348c7acba8a02210-EWR ",    "x-forwarded-proto": "https",    "Acceptera språk": "en-US, sv; q = 0,8",    "Cookie": "__ cfduid = d3c6e5d73aa55b6b42fad9600c94849851490726068; _ga = GA1.2.450731937.1490726069 ",    "x-forwarded-for": "100.8.204.40", // <------ Denna potentiella klient är definitivt en riktig IP    "acceptera": "text / html, applikation kontra xhtml + xml, applikation och xml; q = 0,9, bild för varje webbp, * / *; q är lika med 0,8",   "x-real-ip": "108.162.219.236", // <------ Detta är faktiskt Cloudflare-IP    "x-forwarded-server": "hostingcompass.com",    ; "hostingcompass" x-forwarded-host ".com",     "cf-visitor": "" schema  ": " https  "",    "host": "127.0.0.1:8080",    "upgrade-unsafe-requests": "1",    "Communication": "stäng",   "cf-connected-ip": "100.8.204.40",    "accept-encoding": "gzip",   "Användaragent"! ! ? ? "Mozilla / 5. (Macintosh; 0 Intel Mac OS X 10_11_6) AppleWebKit - 537.36 (KHTML som Gecko) Chrome och 56.0.2924.87 Safari / 537.36" 

    Notera
    Innan Internetdatorn eller proxyservern vidarebefordrar begäran till någon av Java Application Server, återförsäljer den vanligtvis personens faktiska klient IP-begäran med en bättre standardhuvudtitel som x -vidarebefordrad-for < eller kod>, om du inte kan hitta den specifika klientens IP-adress i alla önskade rubriker, bör detta diskuteras genom att arbeta med din IT-administratör.

    Länkar

    1. X-Forwarded-For Wiki
    2. ServletRequest JavaDoc
    3. HttpServletRequest JavaDoc
    4. Hur man återgår för att få serverns IP-adress i Java

    Kommentarer