diff options
author | John Nicely <john.nicely@gmail.com> | 2011-11-24 19:50:39 +0100 |
---|---|---|
committer | John Nicely <john.nicely@gmail.com> | 2011-11-24 19:50:39 +0100 |
commit | 9a05d2b0d838bb000a89ab9ea78a307b557768e7 (patch) | |
tree | ed24b7437f8575aead72804a512f6b2f72118a73 | |
parent | b8188f6a588fbf2a4b9570580999317ba149ecb0 (diff) |
Changed form_open() to compare $action against base_url()
Checking for strpos($action, $CI->config->site_url()) === FALSE causes
CSRF token to not be added in form_open() output. When site_url()'s
first parameter ($uri) is empty, site_url's return value is the base
URL plus the $CI->config->item('index_page') value. form_open() and
CodeIgniter's URI routing do not require index.php to be in the URL, so
any call to form_open() in which the $action parameter does not have
index.php will always return false for the strpos() call.
-rw-r--r-- | system/helpers/form_helper.php | 2 | ||||
-rw-r--r-- | user_guide/changelog.html | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index d9305c00b..8733ae053 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -65,7 +65,7 @@ if ( ! function_exists('form_open')) $form .= '>'; // Add CSRF field if enabled, but leave it out for GET requests and requests to external websites - if ($CI->config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->site_url()) === FALSE OR strpos($form, 'method="get"'))) + if ($CI->config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->base_url()) === FALSE OR strpos($form, 'method="get"'))) { $hidden[$CI->security->get_csrf_token_name()] = $CI->security->get_csrf_hash(); } diff --git a/user_guide/changelog.html b/user_guide/changelog.html index a20f27956..ae66add33 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -71,6 +71,7 @@ Change Log <h3>Bug fixes for 2.1.1</h3> <ul> <li>Fixed a bug (#697) - A wrong array key was used in the Upload library to check for mime-types.</li> + <li>Fixed a bug - form_open() compared $action against site_url() instead of base_url()</li> </ul> |