Platform.sh populates with real user IP even when reverse proxy is used #68
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Symfony expects that if Varnish (or any other reverse proxy) is used then it's IP is stored as the value for
REMOTE_ADDR
:But that is not true for Platform.sh. On Platform.sh
REMOTE_ADDR
variable contains the real user IP (Please ping @damz for details).HTTP_X_FORWARDED_FOR
header.HTTP_X_FORWARDED_FOR
contains the real user IP (it is the same asREMOTE_ADDR
and Varnish IP)REMOTE_ADDR
is the Varnish IP (but not the real user IP, which it is) the another IP will be extracted as the real user IP fromHTTP_X_FORWARDED_FOR
So Varnish IP is extracted as clean IP on all Symfony projects which run on Platform.sh and are using Varnish.
This PR adds "a special" check for Platform.sh, and returns
REMOTE_ADDR
instead of extracting the wrong IP fromHTTP_X_FORWARDED_FOR
.