Due to HTTP cookie implementation, it is easy to create unchangeable/undeletable cookies via JavaScript injections. Single JavaScript injection vulnerability or cookie storage modification via physical access to the client allows attackers to steal user session forever without session.use_strict_mode=1.
NOTE: When multiple cookies are valid for a request, browser sends a highest precedence cookie. Cookie sent by browsers differs browser by browser because there is no cookie precedence standard. Attacker can exploit this browser behavior to set unchangeable cookies by using httponly, secure, domain and path cookie attributes. Security impact differs according to web site setup, used browser and session handling code.
Enable session.use_strict_mode INI setting by default.
in hard coded, php.ini-*.
Document deprecation of obsolete session save handler API that does not support session.use_strict_mode.
session.use_strict_mode=1 requires
Files save handler will not be affected much, but external session data storage may have noticeable impact.
session.use_strict_mode=1 can result in lost sessions without changes like
However, lost sessions are far better than stolen sessions.
When attackers set unchangeable session ID cookie for a user, the user will not be able to get valid session ID. i.e. Cannot login via attacker supplied unchangeable session ID, etc.
3rd party session save handlers must implement session ID validation handler for session.use_strict_mode=1 to work actually. i.e. 3rd party session save handlers must use PS_FUNCS_SID or PS_FUNCS_UPDATE_TIMESTAMP. PS_FUNCS_UPDATE_TIMESTAMP is strongly recommended.
PHP 7.1.0
None
Session
None
None
session.use_strict_mode=1 for all
3rd party and user defined session save handlers implementation is not affected.
3rf party session handlers must implement session ID validation handler for session.use_strict_mode=1 to work actually. i.e. PS_FUNCS_SID or PS_FUNCS_UPDATE_TIMESTAMP must be used. PS_FUNCS_UPDATE_TIMESTAMP is strongly recommended.
This project requires 2/3 majority
Vote starts 2016/7/12, ends 2016/07/19 23:59:59 UTC.
Not provided as this change is trivial INI default change. Tests scripts are modified to work regardless of session.use_strict_mode=0/1 already.
After the project is implemented, this section should contain
Keep this updated with features that were discussed on the mail lists.