PHP RFC: Session strict mode default ini settings
- Version: 0.2
- Date: 2018-02-13
- Author: Pieter Hordijk, peehaa@php.net
- Status: Inactive
- First Published at: http://wiki.php.net/rfc/default-session-strict-mode
Introduction
Changing default setting session.use_strict_mode
to use strict mode sessions by default preventing session fixation by session adoption.
Proposal
Currently strict mode for sessions is disabled by default. Both our distributed ini files (php.ini-development and php.ini-production) as well as the hardcoded default value disable strict mode. However it is recommended to enable it to prevent session fixation issues.
In the vast majority of cases you want to enable strict mode for sessions. As such this proposal enables a sane default for almost all of our users by changing the default values in our distributed ini files and by changing the hardcoded default in /ext/session/session.c
The default setting for session strict mode will be set to enabled in this proposal.
Backward Incompatible Changes
This proposal only changes a default and doesn't remove any functionality.
The only possible BC break would be if somebody downloads a new PHP version (including ini files) and happens to be among the very few users who needs adoptive sessions and doesn't change the session directive.
Or if somebody downloads a new PHP version and happens to be among the very few users who needs adoptive sessions and doesn't override the hardcoded default by not using ini files.
As such the possible BC impact is almost non-existent.
Also note that a lot of people will be using PHP based on packages which often will come with their own ini files anyway makinh the possible impact of this proposal even smaller.
Proposed PHP Version(s)
PHP 7.3
RFC Impact
To SAPIs
None
To Existing Extensions
None
To Opcache
None
New Constants
None
php.ini Defaults
In both php.ini-development and php.ini-production session.use_strict_mode
will be enabled:
session.use_strict_mode = 1
In /ext/session/session.c session.use_strict_mode
will be enabled:
STD_PHP_INI_ENTRY("session.use_strict_mode", "1", ....)
Open Issues
None
Unaffected PHP Functionality
N/A
Proposed Voting Choices
Simple yes/no vote. Yes means changing the default mode in the ini files to enable strict sessions, no means leave it as it is.
Requires a 50%+1 majority
Patches and Tests
No patch supplied yet as it is a trivial change in the ini files and /ext/session/session.c
Implementation
After the project is implemented, this section should contain
- the version(s) it was merged into
- a link to the git commit(s)
- a link to the PHP manual entry for the feature
- a link to the language specification section (if any)
References
Links to external references, discussions or RFCs
Rejected Features
Keep this updated with features that were discussed on the mail lists.