Skip to content

Commit e3ab356

Browse files
author
Inbal Tako
committed
Support ipv6 extraction
1 parent 6f8c7c2 commit e3ab356

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

lib/securenative/utils/request_utils.rb

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,65 +48,65 @@ def self.get_client_ip_from_request(request, options)
4848
end
4949

5050
begin
51-
x_forwarded_for = request.env['HTTP_X_FORWARDED_FOR']
52-
if ip.include? ','
53-
x_forwarded_for = ip.split(',')[0]
51+
header_value = request.env['HTTP_X_FORWARDED_FOR']
52+
if header_value.include? ','
53+
header_value = ip.split(',')[0]
5454
end
55-
if self.validate_ip(x_forwarded_for)
56-
return x_forwarded_for
55+
if self.validate_ip(header_value)
56+
return header_value
5757
end
5858
rescue NoMethodError
5959
begin
60-
x_forwarded_for = request['HTTP_X_FORWARDED_FOR']
61-
if ip.include? ','
62-
x_forwarded_for = ip.split(',')[0]
60+
header_value = request['HTTP_X_FORWARDED_FOR']
61+
if header_value.include? ','
62+
header_value = ip.split(',')[0]
6363
end
64-
if self.validate_ip(x_forwarded_for)
65-
return x_forwarded_for
64+
if self.validate_ip(header_value)
65+
return header_value
6666
end
6767
rescue NoMethodError
6868
# Ignored
6969
end
7070
end
7171

7272
begin
73-
x_forwarded_for = request.env['HTTP_X_REAL_IP']
74-
if ip.include? ','
75-
x_forwarded_for = ip.split(',')[0]
73+
header_value = request.env['HTTP_X_REAL_IP']
74+
if header_value.include? ','
75+
header_value = ip.split(',')[0]
7676
end
77-
if self.validate_ip(x_forwarded_for)
78-
return x_forwarded_for
77+
if self.validate_ip(header_value)
78+
return header
7979
end
8080
rescue NoMethodError
8181
begin
82-
x_forwarded_for = request['HTTP_X_REAL_IP']
83-
if ip.include? ','
84-
x_forwarded_for = ip.split(',')[0]
82+
header_value = request['HTTP_X_REAL_IP']
83+
if header_value.include? ','
84+
header_value = ip.split(',')[0]
8585
end
86-
if self.validate_ip(x_forwarded_for)
87-
return x_forwarded_for
86+
if self.validate_ip(header_value)
87+
return header_value
8888
end
8989
rescue NoMethodError
9090
# Ignored
9191
end
9292
end
9393

9494
begin
95-
x_forwarded_for = request.env['REMOTE_ADDR']
96-
if ip.include? ','
97-
x_forwarded_for = ip.split(',')[0]
95+
header_value = request.env['REMOTE_ADDR']
96+
if header_value.include? ','
97+
header_value = ip.split(',')[0]
9898
end
99-
if self.validate_ip(x_forwarded_for)
100-
return x_forwarded_for
99+
if self.validate_ip(header_value)
100+
return header_value
101101
end
102102
rescue NoMethodError
103103
begin
104-
x_forwarded_for = request['REMOTE_ADDR']
105-
if ip.include? ','
106-
x_forwarded_for = ip.split(',')[0]
104+
header_value = request['REMOTE_ADDR']
105+
if header_value.include? ','
106+
header_value = ip.split(',')[0]
107107
end
108-
if self.validate_ip(x_forwarded_for)
109-
return x_forwarded_for
108+
if self.validate_ip(header_value)
109+
return header_value
110110
end
111111
rescue NoMethodError
112112
# Ignored

0 commit comments

Comments
 (0)