@@ -82,6 +82,9 @@ public function createHttpRequest()
82
82
83
83
// path & query
84
84
$ 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
+ }
85
88
$ requestUrl = Strings::replace ($ requestUrl , $ this ->urlFilters ['url ' ]);
86
89
$ tmp = explode ('? ' , $ requestUrl , 2 );
87
90
$ path = Url::unescape ($ tmp [0 ], '%/?# ' );
@@ -99,17 +102,15 @@ public function createHttpRequest()
99
102
}
100
103
$ url ->setScriptPath ($ path );
101
104
102
- // GET, POST, COOKIE
105
+ // POST, COOKIE
103
106
$ useFilter = (!in_array (ini_get ('filter.default ' ), ['' , 'unsafe_raw ' ]) || ini_get ('filter.default_flags ' ));
104
-
105
- $ query = $ url ->getQueryParameters ();
106
107
$ post = $ useFilter ? filter_input_array (INPUT_POST , FILTER_UNSAFE_RAW ) : (empty ($ _POST ) ? [] : $ _POST );
107
108
$ cookies = $ useFilter ? filter_input_array (INPUT_COOKIE , FILTER_UNSAFE_RAW ) : (empty ($ _COOKIE ) ? [] : $ _COOKIE );
108
109
109
110
// remove invalid characters
110
111
$ reChars = '#^[ ' . self ::CHARS . ']*+\z#u ' ;
111
112
if (!$ this ->binary ) {
112
- $ list = [ & $ query , & $ post , & $ cookies] ;
113
+ $ list = array ( & $ post , & $ cookies) ;
113
114
while (list ($ key , $ val ) = each ($ list )) {
114
115
foreach ($ val as $ k => $ v ) {
115
116
if (is_string ($ k ) && (!preg_match ($ reChars , $ k ) || preg_last_error ())) {
@@ -126,7 +127,6 @@ public function createHttpRequest()
126
127
}
127
128
unset($ list , $ key , $ val , $ k , $ v );
128
129
}
129
- $ url ->setQuery ($ query );
130
130
131
131
132
132
// FILES and create FileUpload objects
0 commit comments