aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/session.php
diff options
context:
space:
mode:
authorTristan Darricau <github@nicofuma.fr>2014-11-12 11:44:56 +0100
committerTristan Darricau <github@nicofuma.fr>2014-11-16 16:45:19 +0100
commit0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4 (patch)
treec8e5bc0ca0d0f646b37d392d9bd67f6215dec7e4 /phpBB/phpbb/session.php
parent526a97db7cea84ab54b7d283c888ada58a310bc4 (diff)
downloadforums-0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4.tar
forums-0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4.tar.gz
forums-0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4.tar.bz2
forums-0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4.tar.xz
forums-0dfe1d0d8b007ec7b7cae0715cfb2e5f4e33bad4.zip
[ticket/13280] Output escaping for the symfony request object
PHPBB3-13280
Diffstat (limited to 'phpBB/phpbb/session.php')
-rw-r--r--phpBB/phpbb/session.php17
1 files changed, 9 insertions, 8 deletions
diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php
index 14b4c63207..dc90d942c3 100644
--- a/phpBB/phpbb/session.php
+++ b/phpBB/phpbb/session.php
@@ -31,10 +31,11 @@ class session
var $update_session_page = true;
/**
- * Extract current session page
- *
- * @param string $root_path current root path (phpbb_root_path)
- */
+ * Extract current session page
+ *
+ * @param string $root_path current root path (phpbb_root_path)
+ * @return array
+ */
static function extract_current_page($root_path)
{
global $request, $symfony_request, $phpbb_filesystem;
@@ -42,8 +43,8 @@ class session
$page_array = array();
// First of all, get the request uri...
- $script_name = $symfony_request->getScriptName();
- $args = explode('&', $symfony_request->getQueryString());
+ $script_name = $request->escape($symfony_request->getScriptName(), true);
+ $args = $request->escape(explode('&', $symfony_request->getQueryString()), true);
// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
if (!$script_name)
@@ -61,8 +62,8 @@ class session
// Since some browser do not encode correctly we need to do this with some "special" characters...
// " -> %22, ' => %27, < -> %3C, > -> %3E
- $find = array('"', "'", '<', '>');
- $replace = array('%22', '%27', '%3C', '%3E');
+ $find = array('"', "'", '<', '>', '&quot;', '&lt;', '&gt;');
+ $replace = array('%22', '%27', '%3C', '%3E', '%22', '%3C', '%3E');
foreach ($args as $key => $argument)
{