PHP 4.0 Bug #6987 Updated: Session ID being modified mid-session
| From: | Bug Database | Date: | Tue, 03 Oct 2000 08:00:20 +0000 |
| Subject: | PHP 4.0 Bug #6987 Updated: Session ID being modified mid-session | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-34079@lists.php.net to get a copy of this message | ||
ID: 6987
User Update by: mosch@overtone.org
Status: Open
Bug Type: *Session related
Description: Session ID being modified mid-session
I changed session.referer_check to 0 after being pointed at the code in session.c around line 882.
This caused the session identifier to be lost all the time rather than just between test4nc and
test5nc.
Previous Comments:
---------------------------------------------------------------------------
[2000-10-03 03:37:49] mosch@overtone.org
this is reproducable with the latest version out of CVS as of 2 Octobre 2000.
---------------------------------------------------------------------------
[2000-10-03 03:35:50] mosch@overtone.org
========= description
in the given sample scripts, the given session identifier is lost between test4nc.php and
test5nc.php reliably. At this point the session gets a new identifier, and continues, obviously
losing any data stored in the previous session.
========= configure info
'./configure' '--with-imap' '--with-solid' '--with-gettext'
'--enable-debug' '--enable-debugger' '--enable-snmp'
'--enable-track-vars' '--enable-trans-sid' '--without-gd'
'--with-apxs=/usr/local/sbin/apxs' '--disable-magic-quotes'
'--enable-short-tags' '--without-mysql' '--without-tsrm-pthreads'
========= php.ini
[PHP] engine
= On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = Off
implicit_flush = Off
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
expose_php = On
max_execution_time = 60
memory_limit = 67108864
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
log_errors = Off
track_errors = Off
warn_plus_overloading = Off
variables_order = "EGPCS"
register_globals = On
register_argc_argv = Off
track_vars = On
magic_quotes_gpc = On
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "iso-8859-1"
include_path = .:/usr/local/www/data/include
doc_root =
user_dir =
upload_max_filesize = 1
extension_dir = ./
enable_dl = On
[Syslog]
define_syslog_variables = Off
[mail function]
sendmail_path = /usr/sbin/sendmail
[Debugger]
debugger.host = localhost
debugger.port = 7869
debugger.enabled = False
[SQL]
sql.safe_mode = Off
[ODBC]
uodbc.allow_persistent = On
uodbc.check_persistent = On
uodbc.max_persistent = 10
uodbc.max_links = 10
uodbc.defaultbinmode = 1
[Session]
session.save_handler = files ; handler used to store/retrieve data
session.save_path = /tmp ; argument passed to save_handler
; in the case of files, this is the
; path where data files are stored
session.use_cookies = 0
session.name = TICS
session.auto_start = 0 ; initialize session on request startup
session.cookie_lifetime = 0 ; lifetime in seconds of cookie
; or if 0, until browser is restarted
session.cookie_path = / ; the path the cookie is valid for
session.cookie_domain = ; the domain the cookie is valid for
session.serialize_handler = php ; handler used to serialize data
; php is the standard serializer of PHP
session.gc_probability = 1 ; percentual probability that the
; 'garbage collection' process is started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds, stored
; data will be seen as 'garbage' and
; cleaned up by the gc process
session.referer_check = 1
session.entropy_length = 16
session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; set to {nocache,private,public} to
session.cache_expire = 180
======== unique information
none that i'm aware of... it's a fairly basic setup.
======== script to duplicate problem.
-test1nc.php
<?
session_start();
session_id("SOMETHING");
if (!session_is_registered("bleh"))
{
session_register("bleh");
}
$bleh = 6;
print "I set bleh to 6n";
$href = "test2nc.php";
print '<a href="' . $href . '">test2</a>';
?>
-test2nc.php
<?
session_start();
Header("Location: test3nc.php?" . sid );
?>
-test3nc.php
<?
session_start();
print "bleh is $bleh n";
$href = "test4nc.php";
print '<a href="' . $href . '">test4</a>';
?>
-test4nc.php
<?
session_start();
?>
Hooray, Y2K!
<form action="test5nc.php" method="post">
<input type=text name=foo maxlength=14>
<input type=submit name="Continue" value=" Continue ">
</form>
-test5nc.php
<?
session_start();
print "foo is $foo <br>n";
print "bleh is $bleh n";
$href = "test6nc.php";
print "<form action="$href" method="post">n";
print "<input type="text" name="username"
size="10">n";
print "<input type="submit" name="go" value="next">n";
print "</form>n";
?>
-test6nc.php<?
session_start();
print "foo is $foo <br>n";
print "bleh is $bleh n";
$href = "test6nc.php";
print "<form action="$href" method="post">n";
print "<input type="text" name="username"
size="10">n";
print "<input type="submit" name="go" value="next">n";
print "</form>n";
?>
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=6987