Hello Jochen, please resend your patch as unified patch (cvs di -u).
marcus Thursday, June 23, 2005, 2:03:24 AM, you wrote: > Hi, > Internet Explorer 6 SP1 supports the cookie attribute "httponly" which > prevents reading cookies from JavaScript or the like. This can help to > mitigate XSS session hijacking. Browsers not supporting this cookie > attribute are not disturbed if it is present. > AFAIK PHP does not support httponly cookies. So here's a patch that will > add support for it in PHP4. > (files ext/session/session.c and ext/session/session_php.h have to be > changed) > After you apply the changes (and recompile), you can add a line like > this in php.ini: > session.cookie_httponly=1 > It enables httpOnly cookies. Default value ist 0 (off, if line is > missing). > /****diff for session.c****/ > bash#diff ./ext/session/session.c ./ext/session/session_with_httponly.c > 142d141 > < STD_PHP_INI_BOOLEAN("session.cookie_httponly", "0", > PHP_INI_ALL, OnUpdateBool, cookie_httponly, php_ps_globals, > ps_globals) > 857d855 > < #define COOKIE_HTTPONLY "; httponly" > 911,914d908 > < if (PS(cookie_httponly)) { > < smart_str_appends(&ncookie, COOKIE_HTTPONLY); > < } > < > 1140c1134 > < /* {{{ proto void session_set_cookie_params(int lifetime [, string > path [, string domain [, bool secure [, bool httponly]]]]) > --- >> /* {{{ proto void session_set_cookie_params(int lifetime [, string >> path [, string domain [, bool secure]]]) > 1144c1138 > < zval **lifetime, **path, **domain, **secure, **httponly; > --- >> zval **lifetime, **path, **domain, **secure; > 1149,1150c1143,1144 > < if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 5 || > < zend_get_parameters_ex(ZEND_NUM_ARGS(), &lifetime, > &path, &domain, &secure, &httponly) == FAILURE) > --- >> if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 4 || >> zend_get_parameters_ex(ZEND_NUM_ARGS(), &lifetime, >> &path, &domain, &secure) == FAILURE) > 1167,1170d1160 > < if (ZEND_NUM_ARGS() > 4) { > < convert_to_long_ex(httponly); > < > zend_alter_ini_entry("session.cookie_httponly", > sizeof("session.cookie_httponly"), Z_BVAL_PP(httponly)?"1":"0", 1, > PHP_INI_USER, PHP_INI_STAGE_RUNTIME); > < } > 1190d1179 > < add_assoc_bool(return_value, "httponly", PS(cookie_httponly)); > /****diff for session_php.h****/ > bash#diff ./ext/session/php_session.h > ./ext/session/php_session_with_httponly.h > 106d105 > < zend_bool cookie_httponly; > --------------------------- > Keep in mind that the added protection by httpOnly cookies can be > circumvented by XST-style attacks... > Hope this is useful.... > Jochen -- Best regards, Marcus mailto:[EMAIL PROTECTED] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php