25
25
define ('AJXP_SANITIZE_ALPHANUM ' , 3 );
26
26
define ('AJXP_SANITIZE_EMAILCHARS ' , 4 );
27
27
define ('AJXP_SANITIZE_FILENAME ' , 5 );
28
+ define ('AJXP_SANITIZE_DIRNAME ' , 6 );
28
29
29
30
// THESE ARE DEFINED IN bootstrap_context.php
30
31
// REPEAT HERE FOR BACKWARD COMPATIBILITY.
@@ -189,7 +190,7 @@ public static function sanitize($s, $level = AJXP_SANITIZE_HTML, $expand = 'scri
189
190
return preg_replace ("/[^a-zA-Z0-9_\-\.]/ " , "" , $ s );
190
191
} else if ($ level == AJXP_SANITIZE_EMAILCHARS ) {
191
192
return preg_replace ("/[^a-zA-Z0-9_\-\.@!%\+=|~\?]/ " , "" , $ s );
192
- } else if ($ level == AJXP_SANITIZE_FILENAME ) {
193
+ } else if ($ level == AJXP_SANITIZE_FILENAME || $ level == AJXP_SANITIZE_DIRNAME ) {
193
194
// Convert Hexadecimals
194
195
$ s = preg_replace_callback ('!(&#| \\\)[xX]([0-9a-fA-F]+);?! ' , array ('AJXP_Utils ' , 'clearHexaCallback ' ), $ s );
195
196
// Clean up entities
@@ -199,9 +200,11 @@ public static function sanitize($s, $level = AJXP_SANITIZE_HTML, $expand = 'scri
199
200
// Strip whitespace characters
200
201
$ s = trim ($ s );
201
202
$ s = str_replace (chr (0 ), "" , $ s );
202
- $ s = preg_replace ("/[ \"\/\|\? \\\]/ " , "" , $ s );
203
+ if ($ level == AJXP_SANITIZE_FILENAME ) $ s = preg_replace ("/[ \"\/\|\? \\\]/ " , "" , $ s );
204
+ else $ s = preg_replace ("/[ \"\|\? \\\]/ " , "" , $ s );
203
205
if (self ::detectXSS ($ s )){
204
- $ s = "XSS Detected - Rename Me " ;
206
+ if (strpos ($ s , "/ " ) === 0 ) $ s = "/XSS Detected - Rename Me " ;
207
+ else $ s = "XSS Detected - Rename Me " ;
205
208
}
206
209
return $ s ;
207
210
}
@@ -337,7 +340,7 @@ public static function parseFileDataErrors($boxData, $throwException=false)
337
340
$ errorsArray [UPLOAD_ERR_EXTENSION ] = array (410 , $ mess [542 ]);
338
341
if ($ userfile_error == UPLOAD_ERR_NO_FILE ) {
339
342
// OPERA HACK, do not display "no file found error"
340
- if (! ereg ( ' Opera ' , $ _SERVER ['HTTP_USER_AGENT ' ]) ) {
343
+ if (strpos ( $ _SERVER ['HTTP_USER_AGENT ' ], ' Opera ' ) === false ) {
341
344
$ data = $ errorsArray [$ userfile_error ];
342
345
if ($ throwException ) throw new Exception ($ data [1 ], $ data [0 ]);
343
346
return $ data ;
0 commit comments