Add some page template validation
git-svn-id: http://svn.automattic.com/wordpress/trunk@7921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
9830ab988c
commit
dcf35ab2ed
|
@ -68,22 +68,6 @@ function wp_tempnam($filename = '', $dir = ''){
|
|||
return $filename;
|
||||
}
|
||||
|
||||
function validate_file( $file, $allowed_files = '' ) {
|
||||
if ( false !== strpos( $file, '..' ))
|
||||
return 1;
|
||||
|
||||
if ( false !== strpos( $file, './' ))
|
||||
return 1;
|
||||
|
||||
if (':' == substr( $file, 1, 1 ))
|
||||
return 2;
|
||||
|
||||
if (!empty ( $allowed_files ) && (!in_array( $file, $allowed_files ) ) )
|
||||
return 3;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function validate_file_to_edit( $file, $allowed_files = '' ) {
|
||||
$file = stripslashes( $file );
|
||||
|
||||
|
|
|
@ -1749,4 +1749,20 @@ function apache_mod_loaded($mod, $default = false) {
|
|||
return $default;
|
||||
}
|
||||
|
||||
function validate_file( $file, $allowed_files = '' ) {
|
||||
if ( false !== strpos( $file, '..' ))
|
||||
return 1;
|
||||
|
||||
if ( false !== strpos( $file, './' ))
|
||||
return 1;
|
||||
|
||||
if (':' == substr( $file, 1, 1 ))
|
||||
return 2;
|
||||
|
||||
if (!empty ( $allowed_files ) && (!in_array( $file, $allowed_files ) ) )
|
||||
return 3;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -419,7 +419,7 @@ function get_page_template() {
|
|||
if ( 'default' == $template )
|
||||
$template = '';
|
||||
|
||||
if ( !empty($template) && file_exists(TEMPLATEPATH . "/$template") )
|
||||
if ( !empty($template) && !validate_file($template) && file_exists(TEMPLATEPATH . "/$template") )
|
||||
$template = TEMPLATEPATH . "/$template";
|
||||
elseif ( file_exists(TEMPLATEPATH . "/page.php") )
|
||||
$template = TEMPLATEPATH . "/page.php";
|
||||
|
|
Loading…
Reference in New Issue