krwq napisał(a)
jeśli wszystkie Twoje zabezpieczenia w kodzie są napisane w javascripcie, to wyobraź sobie, że nie istnieją. Zakładając, że tester nie zna Twojego hasła do ftp, ani nie dostał się w jakiś niecny sposób na serwer to masz lukę w php i ten fragment kodu który przyjmuje pliki powinieneś tutaj wkleić do sprawdzenia.
Generalnie wg. ustawień Uploadify po wybraniu pliku tablicę $_FILES obsługuje skrypt umieszony zresztą na zewnętrznym serwerze:
<?php
if(!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/content/files/';
$fileinfo = pathinfo($_FILES['Filedata']['name']);
$filename = md5(time()) . '.' . $fileinfo['extension'];
$targetFile = str_replace('//','/',$targetPath) . $filename;
$result = move_uploaded_file($tempFile,$targetFile);
if($result) {
echo $filename;
}else echo $filename;
}
?>
Jednak tester poczynił zmiany w pliku uploadify.php (zakomentował od $fileTypes w dół):
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
$fileTypes = str_replace('*.','',$_REQUEST['fileext']);
$fileTypes = str_replace(';','|',$fileTypes);
$typesArray = split('\|',$fileTypes);
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$typesArray)) {
// Uncomment the following line if you want to make the directory if it doesn't exist
// mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
} else {
echo 'Invalid file type.';
}
}
?>