Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>$uploaddir = «temp_folder/»;
$host = $_POST[«host»]; //ccылка вида habrahabr.ru/file.jpg
$expansion = strtolower(strrchr($host, ".")); //выясняем расширение файла в строке
$filename = $uploaddir.«temp_file».$expansion; //полный путь загруженного файла
ini_set('max_execution_time',600);//устанавливаем время работы скрипта
//закачка
$fp=fopen($filename,«w»);//создаем пустой файл
fclose($fp);
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $host);//запускаем сеанс curl
$fp=fopen($filename,«w+»);//открываем файл для записи
curl_setopt($ch, CURLOPT_FILE, $fp);// записываем в файл
curl_setopt($ch, CURLOPT_REFERER, $host);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_exec ($ch);//выполняем команды curl
curl_close ($ch);//завершаем сеанс curl
fclose ($fp);//закрываем файл
$new_file = «новая папка/новое имя файла»; //полный НОВЫЙ путь загружаемого файла
rename($filename, $new_file); //перенесли файл в новое место
@unlink( $filename );
Я обычно весь загружаемый контент выношу на отдельный поддомен, на котором вообще все скрипты отключены.
<Files ~ "\.(php[2-5]?|cgi|pl|fcgi|fpl|phtml|shtml|asp|jsp)$">
Deny from all
</Files>
Options None Options +FollowSymLinks
Это казалось очевидным все это время, но мало кто это реализовывает.
<FilesMatch ".*">
Order allow,deny
Deny from all
<FilesMatch "\.(список_легетимных_расширений через |)$|^$">
Order deny,allow
Allow from all
<Files ~ "\.(php[2-5]?|cgi|pl|fcgi|fpl|phtml|shtml|asp|jsp)$">
Deny from all
</Files><?php
$filename = 'file.php';
$pos = strrpos($filename, '.');
$ext = ($pos !== false ? substr($filename, $pos + 1) : '');
if (in_array($ext, array('php', '...'))) die('forbidden');
?>
Превентивная защита ваших и не ваших скриптов