# Falsche IP-Adresse des Nutzers bei Betrieb von SW hinter einem Load Balancer / Proxy

**URL:** https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341
**Category:** Programmierung
**Created:** [2. Februar 2017 um 10:10 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341 "2017-02-02T10:10:54Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![St3phan](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@St3phan](https://forum.shopware.com/u/St3phan)
#### Post date: [2. Februar 2017 um 10:10 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/1 "2017-02-02T10:10:54Z")

</div>

Liebes Forum,

ich bräuchte mal bitte mal Eure Einschätzung zu einem Thema.

Wir betreiben SW (5.2) in der Amazon Cloud hinter einem Load Balancer. Dadurch wird anscheinend die PHP Umgebungsvariable `$_SERVER['REMOTE_ADDR']` “falsch” gesetzt, nämlich mit der IP des Load Balancers statt des Kunden. Dies hat z.B. negative Auswirkungen auf die Shopware Statistiken.

1. Kann das jemand bestätigen und hat jemand vielleicht eine Lösung (ohne den Core zu verändern)?

2. Wäre es aus Eurer Sicht auch sinnvoll, dass der SW-Core konsequent auf die Nutzung von `$_SERVER['REMOTE_ADDR']` verzichtet, sondern statdessen z.B. die bereits im Core integrierte ZEND-Methode `Zend_Controller_Request_Http::getClientIp(true)` nutzt (nicht getestet, sieht aber gut aus)? Ich würde dann ein Ticket aufmachen.

Danke im Voraus und viele Grüße

Stephan

---

<div class="post-metadata">

### Author: ![tschersich](https://avatars.discourse-cdn.com/v4/letter/t/a9adbd/32.png) [@tschersich](https://forum.shopware.com/u/tschersich)
#### Post date: [2. Februar 2017 um 10:20 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/2 "2017-02-02T10:20:57Z")

</div>

Lässt sich der AWS Loadbalancer nicht so konfigurieren, dass der X-Forwarded-For Header weiter gereicht wird?

Oder greift sich SW das Ding nicht?

---

<div class="post-metadata">

### Author: ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)
#### Post date: [2. Februar 2017 um 11:39 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/3 "2017-02-02T11:39:50Z")

</div>

[[Papercut][SW-14342] Use helper methode to get the IP of customer by mitelg · Pull Request #769 · shopware/shopware · GitHub](https://github.com/shopware/shopware/pull/769) Hier wurde&nbsp;getClientIp(true) aufgrund möglicher security issues abgelehnt.

---

<div class="post-metadata">

### Author: ![hhmarco73](https://avatars.discourse-cdn.com/v4/letter/h/ed8c4c/32.png) [@hhmarco73](https://forum.shopware.com/u/hhmarco73)
#### Post date: [2. Februar 2017 um 13:05 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/4 "2017-02-02T13:05:57Z")

</div>

Wir haben ein ähnliches Setup, allerdings noch mit Varnish zwischen Load Balancer und PHP Apache Server. Hast Du denn in Deiner config.php folgendes stehen?

```
 $config['trustedProxies'] = ['12.3.4.5']; // ersetzen mit IP-Adressen/Range des Loadbalancer und/oder Varnish
```

---

<div class="post-metadata">

### Author: ![St3phan](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@St3phan](https://forum.shopware.com/u/St3phan)
#### Post date: [2. Februar 2017 um 15:17 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/5 "2017-02-02T15:17:40Z")

</div>

> [@hhmarco73 schrieb:](https://forum.shopware.com/profile/24323/hhmarco73 "hhmarco73")
> 
> Wir haben ein ähnliches Setup, allerdings noch mit Varnish zwischen Load Balancer und PHP Apache Server. Hast Du denn in Deiner config.php folgendes stehen?
> 
> $config[‚trustedProxies‘] = [‚12.3.4.5‘]; // ersetzen mit IP-Adressen/Range des Loadbalancer und/oder Varnish

Vielen Dank für den Hinweis… die Option war mir noch nicht geläufig. Wenn ich die Beschreibung in den DevDocs richtig verstehe, wird dadurch ermöglicht, dass der Proxy (LB) den Header `HTTP_X_FORWARDED_FOR `setzt bzw. diesem vertraut wird. Jedoch wird nicht automatisch die `$_SERVER[REMOTE_ADDR]`durch den Header ersetzt, die SW für die User IP ausliest, oder? Ich werde es trotzdem mal ausprobieren, danke!

&nbsp;

---

<div class="post-metadata">

### Author: ![St3phan](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@St3phan](https://forum.shopware.com/u/St3phan)
#### Post date: [2. Februar 2017 um 15:19 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/6 "2017-02-02T15:19:25Z")

</div>

> [@tschersich schrieb:](https://forum.shopware.com/profile/209/tschersich "tschersich")
> 
> Lässt sich der AWS Loadbalancer nicht so konfigurieren, dass der X-Forwarded-For Header weiter gereicht wird?
> 
> Oder greift sich SW das Ding nicht?

Soweit ich es im Quellcode sehe, wird z.B. in der sOrder nur die `$_SERVER[REMOTE_ADDR]`verwendet und der `HTTP_X_FORWARDED_FOR `ignoriert.

---

<div class="post-metadata">

### Author: ![hhmarco73](https://avatars.discourse-cdn.com/v4/letter/h/ed8c4c/32.png) [@hhmarco73](https://forum.shopware.com/u/hhmarco73)
#### Post date: [2. Februar 2017 um 18:54 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/7 "2017-02-02T18:54:06Z")

</div>

$\_SERVER wird aber hier&nbsp;vendor/symfony/http-foundation/Request.php:519 überschrieben

Symfony wertet vorher&nbsp;trustedProxies aus und überschreibt dadurch dann ggf. \_SERVER[REMOTE\_ADDR] mit dem Wert aus \_SERVER[HTTP\_X\_FORWARDED\_FOR]

---

<div class="post-metadata">

### Author: ![St3phan](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@St3phan](https://forum.shopware.com/u/St3phan)
#### Post date: [2. Februar 2017 um 19:12 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/8 "2017-02-02T19:12:41Z")

</div>

> [@hhmarco73 schrieb:](https://forum.shopware.com/profile/24323/hhmarco73 "hhmarco73")
> 
> $\_SERVER wird aber hier&nbsp;vendor/symfony/http-foundation/Request.php:519 überschrieben
> 
> Symfony wertet vorher&nbsp;trustedProxies aus und überschreibt dadurch dann ggf. $\_SERVER[REMOTE\_ADDR] mit dem Wert aus $\_SERVER[HTTP\_X\_FORWARDED\_FOR]

Ah, spannend, sieht vielversprechend aus. Ich werde es mal ausprobieren! Danke!

---

<div class="post-metadata">

### Author: ![hhmarco73](https://avatars.discourse-cdn.com/v4/letter/h/ed8c4c/32.png) [@hhmarco73](https://forum.shopware.com/u/hhmarco73)
#### Post date: [3. Februar 2017 um 07:10 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/9 "2017-02-03T07:10:03Z")

</div>

Hier noch ein paar mehr Hintergrundinformationen:

> **[How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy...](https://symfony.com/doc/current/deployment/proxies.html)**
>
> How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy: When you deploy your application, you may be behind a load balancer (e.g. an AWS Elastic Load Balancing) or a reverse proxy ...

> **[How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy...](https://symfony.com/doc/current/deployment/proxies.html)**
>
> How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy: When you deploy your application, you may be behind a load balancer (e.g. an AWS Elastic Load Balancing) or a reverse proxy ...

---

<div class="post-metadata">

### Author: ![St3phan](https://avatars.discourse-cdn.com/v4/letter/s/ecc23a/32.png) [@St3phan](https://forum.shopware.com/u/St3phan)
#### Post date: [27. Februar 2017 um 09:58 UTC](https://forum.shopware.com/t/falsche-ip-adresse-des-nutzers-bei-betrieb-von-sw-hinter-einem-load-balancer-proxy/43341/10 "2017-02-27T09:58:34Z")

</div>

Nochmal vielen Dank! Nachdem wir nun endlich das Update fahren konnten, funktioniert die Weitergabe der IP Adresse einwandfrei.

Hier nocheinmal die Zusammenfassung für alle anderen Interessierten:  
Wie von&nbsp;hhmarco73 beschrieben, wird \_SERVER[REMOTE\_ADDR] automatisch mit dem Wert von aus \_SERVER[HTTP\_X\_FORWARDED\_FOR] überschrieben, sofern die IP Adresse des Proxy in der config['trustedProxies'] eingetragen ist. Der Proxy muss natürlich den Header \_SERVER[HTTP\_X\_FORWARDED\_FOR] auch richtig setzen. Das ganze findet direkt im Symfony Framwork statt und ist deshalb in den Shopware Controllern nicht zu finden.
