mardi 20 décembre 2016

TrustedProxy does not detect User IP

I'm using Laravel 5.3 with PHP7 on an EC2 behind an ELB and Cloudflare and I have a little problem with TrustedProxy package(http://ift.tt/19Vk73P).

The package doesn't give me the user Ip.

In the trusted config file I have something like this

return [
    'proxies' => '*',
    'headers' => [
        \Illuminate\Http\Request::HEADER_CLIENT_IP    => 'X_FORWARDED_FOR',
        \Illuminate\Http\Request::HEADER_CLIENT_HOST  => 'X_FORWARDED_HOST',
        \Illuminate\Http\Request::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO',
        \Illuminate\Http\Request::HEADER_CLIENT_PORT  => 'X_FORWARDED_PORT',
    ],
];

(I tried with ** too)

But when I do something like $request->ip(), $request->getClientIp o getClientIps (at the end all this method are using getClientIps()) the IP that appear is the proxy IP.

If I print the $request I can see:

Server bag:

...
"HTTP_X_FORWARDED_PROTO" => "https"
"HTTP_X_FORWARDED_PORT" => "443"
"HTTP_X_FORWARDED_FOR" => "XX.XX.XX.XX" (I removed the real IP)
...
"REMOTE_ADDR" => "10.0.0.53"

Header bag:

"x-forwarded-proto" => array:1 [
    0 => "https"
  ]
  "x-forwarded-port" => array:1 [
    0 => "443"
  ]
  "x-forwarded-for" => array:1 [
    0 => "XX.XX.XX.XX" (I removed the real IP)
  ]

But the $request->ip(), $request->getClientIp and getClientIps return the wrong IP (10.0.0.53).

Does anyone have an idea or clue ?

Thanks!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire