-
|
Summary Affected code system/libraries/Session/drivers/Session_database_driver.php — read(), write() (insert + update), destroy(), updateTimestamp(), validateId(), and the MySQL/PostgreSQL _get_lock() (also written into the ip_address column on every insert). match_ip becomes ineffective. REMOTE_ADDR is the proxy's IP, which is identical for all clients. So binding the session to it provides no real per-client binding — every user shares the same "IP". $CI =& get_instance(); // Honour proxy_ips / Cloudflare instead of the raw REMOTE_ADDR (the proxy's IP). Question for maintainers |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
It is intentional. The lack of configuration is also intentional - that just leads to insecure configurations, as unfortunately very few people understand the implications and most will blindly trust user-controlled headers. Bottom line is, anyone competent enough to know when and how it's safe to utilize a proxy-propagated client IP value, should also know how to overwrite |
Beta Was this translation helpful? Give feedback.
It is intentional. The lack of configuration is also intentional - that just leads to insecure configurations, as unfortunately very few people understand the implications and most will blindly trust user-controlled headers.
Bottom line is, anyone competent enough to know when and how it's safe to utilize a proxy-propagated client IP value, should also know how to overwrite
REMOTE_ADDReven before it reaches the PHP process.