Skip to content

Commit 47a2ae5

Browse files
committed
RequestFactory: rejects invalid URL [Closes #30]
1 parent d876cfd commit 47a2ae5

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/Http/RequestFactory.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ public function createHttpRequest()
8282

8383
// path & query
8484
$requestUrl = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
85+
if (!$this->binary && (!preg_match(self::CHARS, rawurldecode($requestUrl)) || preg_last_error())) {
86+
// TODO: invalid request
87+
}
8588
$requestUrl = Strings::replace($requestUrl, $this->urlFilters['url']);
8689
$tmp = explode('?', $requestUrl, 2);
8790
$path = Url::unescape($tmp[0], '%/?#');
@@ -98,10 +101,8 @@ public function createHttpRequest()
98101
}
99102
$url->setScriptPath($path);
100103

101-
// GET, POST, COOKIE
104+
// POST, COOKIE
102105
$useFilter = (!in_array(ini_get('filter.default'), array('', 'unsafe_raw')) || ini_get('filter.default_flags'));
103-
104-
$query = $url->getQueryParameters();
105106
$post = $useFilter ? filter_input_array(INPUT_POST, FILTER_UNSAFE_RAW) : (empty($_POST) ? array() : $_POST);
106107
$cookies = $useFilter ? filter_input_array(INPUT_COOKIE, FILTER_UNSAFE_RAW) : (empty($_COOKIE) ? array() : $_COOKIE);
107108

@@ -112,7 +113,7 @@ public function createHttpRequest()
112113

113114
// remove invalid characters
114115
if (!$this->binary) {
115-
$list = array(& $query, & $post, & $cookies);
116+
$list = array(& $post, & $cookies);
116117
while (list($key, $val) = each($list)) {
117118
foreach ($val as $k => $v) {
118119
if (is_string($k) && (!preg_match(self::CHARS, $k) || preg_last_error())) {
@@ -129,7 +130,6 @@ public function createHttpRequest()
129130
}
130131
unset($list, $key, $val, $k, $v);
131132
}
132-
$url->setQuery($query);
133133

134134

135135
// FILES and create FileUpload objects

0 commit comments

Comments
 (0)