Project

General

Profile

« Previous | Next » 

Revision 1400

Added by FrankH over 13 years ago

  1. Security fix in account
  2. Security fix in admin/media, thanks to hal 9000

View differences:

rename2.php
1 1
<?php
2
/**
3
 *
4
 * @category        admin
5
 * @package         admintools
6
 * @author          WebsiteBaker Project
7
 * @copyright       2004-2009, Ryan Djurovich
8
 * @copyright       2009-2011, Website Baker Org. e.V.
9
 * @link			http://www.websitebaker2.org/
10
 * @license         http://www.gnu.org/licenses/gpl.html
11
 * @platform        WebsiteBaker 2.8.x
12
 * @requirements    PHP 5.2.2 and higher
13
 * @version         $Id$
14
 * @filesource		$HeadURL:  $
15
 * @lastmodified    $Date:  $
16
 *
17
 */
2 18

  
3
// $Id$
4

  
5
/*
6

  
7
 Website Baker Project <http://www.websitebaker.org/>
8
 Copyright (C) 2004-2009, Ryan Djurovich
9

  
10
 Website Baker is free software; you can redistribute it and/or modify
11
 it under the terms of the GNU General Public License as published by
12
 the Free Software Foundation; either version 2 of the License, or
13
 (at your option) any later version.
14

  
15
 Website Baker is distributed in the hope that it will be useful,
16
 but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 GNU General Public License for more details.
19

  
20
 You should have received a copy of the GNU General Public License
21
 along with Website Baker; if not, write to the Free Software
22
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23

  
24
*/
25

  
26 19
// Create admin object
27 20
require('../../config.php');
28 21
require_once(WB_PATH.'/framework/class.admin.php');
29 22
$admin = new admin('Media', 'media_rename', false);
30 23

  
24
if (!$admin->checkFTAN())
25
{
26
	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'], WB_URL);
27
	exit();
28
}
29

  
31 30
// Include the WB functions file
32 31
require_once(WB_PATH.'/framework/functions.php');
33 32

  
34 33
// Get list of file types to which we're supposed to append 'txt'
35
$get_result=$database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name='rename_files_on_upload' LIMIT 1");
36
$file_extension_string='';
34
$get_result = $database->query("SELECT value FROM ".TABLE_PREFIX."settings WHERE name='rename_files_on_upload' LIMIT 1");
35
$file_extension_string = '';
37 36
if ($get_result->numRows()>0) {
38
	$fetch_result=$get_result->fetchRow();
39
	$file_extension_string=$fetch_result['value'];
37
	$fetch_result = $get_result->fetchRow();
38
	$file_extension_string = $fetch_result['value'];
40 39
}
41 40
$file_extensions=explode(",",$file_extension_string);
42 41

  
43

  
44 42
// Get the current dir
45 43
$directory = $admin->get_post('dir');
46 44
if($directory == '/') {
47 45
	$directory = '';
48 46
}
49
// Check to see if it contains ../
50
if(strstr($directory, '../')) {
47

  
48
// Check to see if it contains ..
49
if (!check_media_path($directory)) {
51 50
	$admin->print_header();
52 51
	$admin->print_error($MESSAGE['MEDIA']['DIR_DOT_DOT_SLASH']);
53 52
}
54 53

  
55 54
// Get the temp id
56
if(!is_numeric($admin->get_post('id'))) {
57
	header("Location: browse.php?dir=$directory");
58
	exit(0);
59
} else {
60
	$file_id = $admin->get_post('id');
55
$file_id = $admin->checkIDKEY('id', false, 'POST');
56
if (!$file_id) {
57
	$admin->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'], WB_URL);
61 58
}
62 59

  
63 60
// Get home folder not to show

Also available in: Unified diff