Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

removes /i from the TRUSTED_PROXIES regexp, adds /x and comments for …

…readability, adds a pointer to a Wikipedia section that documents the matched IPs
  • Loading branch information...
commit 9a8861f2e4080fe19b9cb1f10e39ba0110d1da7b 1 parent 96650f7
@fxn fxn authored
Showing with 10 additions and 2 deletions.
  1. +10 −2 actionpack/lib/action_dispatch/http/request.rb
View
12 actionpack/lib/action_dispatch/http/request.rb
@@ -149,8 +149,16 @@ def ip
end
# Which IP addresses are "trusted proxies" that can be stripped from
- # the right-hand-side of X-Forwarded-For
- TRUSTED_PROXIES = /^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\./i
+ # the right-hand-side of X-Forwarded-For.
+ #
+ # http://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces.
+ TRUSTED_PROXIES = %r{
+ ^127\.0\.0\.1$ | # localhost
+ ^(10 | # private IP 10.x.x.x
+ 172\.(1[6-9]|2[0-9]|3[0-1]) | # private IP in the range 172.16.0.0 .. 172.31.255.255
+ 192\.168 # private IP 192.168.x.x
+ )\.
+ }x
# Determines originating IP address. REMOTE_ADDR is the standard
# but will fail if the user is behind a proxy. HTTP_CLIENT_IP and/or
Please sign in to comment.
Something went wrong with that request. Please try again.