Hello again,

some of you may remember the discussions about our session extension
using a permissive mode for session id, which means that PHP accepts all
session IDs from the outside and not only those created by itself.

While I have repeatedly stated, that the strict_mode provides only
little additional protection against real world attacks (Yes there are
theoretical advantages of strict mode, but in nearly all cases it does
NOT offer additonal protection), I have created a little patch against
ext/session of PHP5.1 that provides the following new features.

Ini-Setting:

session.use_strict_mode = 0/1  -> to disable or enable strict mode
checking in internal files/mm session handlers (currently it defaults to
enable)

session_set_save_handler - does now accept two more (optional) handlers
       string create_sid()
       bool validate_sid($key)

one can provide NULL as create_sid() handler to use the normal PHP
handler. In validate_sid() one can add his own detection of a given sid
is allowed (f.e. charset) or not. When a SID is not allowed, it will
create a new one through the create_sid() handler.

To implement all this, I had to add the validate_sid function to the
internal structure of session_modules. This means that the sqlite
session module has also to be patched to stay compatible.

The patch is for review at: http://www.suspekt.org/session_strict_mode.patch

Please comment on it. I will add this to the next version of my
Hardening-Patch and would like to sync my idea with what we can put into
5.2/6.0.

Stefan Esser

-- 
--------------------------------------------------------------------------
 Stefan Esser                                               [EMAIL PROTECTED]
 Hardened-PHP Project                         http://www.hardened-php.net/

 GPG-Key                gpg --keyserver pgp.mit.edu --recv-key 0x15ABDA78
 Key fingerprint       7806 58C8 CFA8 CE4A 1C2C  57DD 4AE1 795E 15AB DA78
--------------------------------------------------------------------------

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to