From 183851b06bd6c52f3cae5375f433da720d410447 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 18:12:39 +0000 Subject: MediaWiki 1.7.1 wiederhergestellt --- img_auth.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 img_auth.php (limited to 'img_auth.php') diff --git a/img_auth.php b/img_auth.php new file mode 100644 index 00000000..fb58ba28 --- /dev/null +++ b/img_auth.php @@ -0,0 +1,61 @@ +$GLOBALS overwrite vulnerability'; + die( -1 ); +} + +require_once( 'includes/Defines.php' ); +require_once( './LocalSettings.php' ); +require_once( 'includes/Setup.php' ); +require_once( 'includes/StreamFile.php' ); + +if( !isset( $_SERVER['PATH_INFO'] ) ) { + wfForbidden(); +} + +# Get filenames/directories +$filename = realpath( $wgUploadDirectory . $_SERVER['PATH_INFO'] ); +$realUploadDirectory = realpath( $wgUploadDirectory ); +$imageName = $wgLang->getNsText( NS_IMAGE ) . ":" . basename( $_SERVER['PATH_INFO'] ); + +# Check if the filename is in the correct directory +if ( substr( $filename, 0, strlen( $realUploadDirectory ) ) != $realUploadDirectory ) { + wfForbidden(); +} + +if ( is_array( $wgWhitelistRead ) && !in_array( $imageName, $wgWhitelistRead ) && !$wgUser->getID() ) { + wfForbidden(); +} + +if( !file_exists( $filename ) ) { + wfForbidden(); +} +if( is_dir( $filename ) ) { + wfForbidden(); +} + +# Write file +wfStreamFile( $filename ); + +function wfForbidden() { + header( 'HTTP/1.0 403 Forbidden' ); + print +" +

Access denied

+

You need to log in to access files on this server

+"; + exit; +} + +?> -- cgit v1.2.2