summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@status.net>2010-11-19 15:30:52 -0800
committerBrion Vibber <brion@status.net>2010-11-19 15:30:52 -0800
commit4193a826d3500c1c8771e2a55ca197011fe637c8 (patch)
treed2cff00e109e7f8d361c052b1452041457dc58b6
parentca55d6c514d4ecadbb7d3fdc4c618dfd9da4a786 (diff)
Ticket #2796: don't allow arbitrary overriding of the 'action' class and other parameters pulled from the URL mapper.
This protects against oddities such as manual invocation of the ClientError action, which can spoof error messages.
-rw-r--r--index.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/index.php b/index.php
index 9501e2275..6079d1f2c 100644
--- a/index.php
+++ b/index.php
@@ -272,7 +272,11 @@ function main()
return;
}
- $args = array_merge($args, $_REQUEST);
+ // Note the order here: arguments from the URL mapper will
+ // override request params that have been sent. This ensures
+ // that for instance an action parameter can't be overridden
+ // with an arbitrary action class.
+ $args = array_merge($_REQUEST, $args);
Event::handle('ArgsInitialize', array(&$args));