Закачиваю файл на сервер (через post, код самый обычный), в определенную папку. Достаточно ли для безопасности подозрительные расширения (php/js) закачивать с именем md5(имя файла).".txt", и в нужной папке htaccess: PHP: RemoveHandler .php .phtml .pl AddType text/html .php .phtm .htm .html .phtml .pl т.е. в общем то я не даю выполнится скриптам php (на всякий случай), перл отключен, в самом сайте нет инклудов из переменных, имя файла более чем безопасно (да и не светится оно нигде, т.е. узнать его проблематично, но на это не расчитываю). Расширение получаю: ext=strtolower(strrchr("имя закачиваемого файла",".")); С точки зрения безопасности - этого достаточно для правильного определения расширения? Вообще, где могут быть дыры? Этих мер достаточно, чтобы мне не испортили жизнь?
Есть такая вещь, как mime type http://ru2.php.net/manual/ru/function.m ... t-type.php А файлы с потенциально опасным расширением переименовывать. Скажем index.php.tmp. А tmp открывать апачем как файл для скачивания.
PHP: <?php ... $TYPE = $_FILES['uFile']['type']; if (!preg_match ("/image/i",$TYPE) && !preg_match ("/officedocument/i",$TYPE) && !preg_match("/msword/i",$TYPE) && !preg_match ("/x-zip-compressed/i",$TYPE)) die ("Uknown file type. File type: $NAME [$TYPE]"); ... ?>
Elkaz и чаво? у меня нет проблемы с определением типа закачиваемого файла. у меня вопрос по уже закачаным файлам, как от них обезопаситься.
Горбунов Олег именно за этим я и создал тему. Кто еще не понял - я закачиваю ЛЮБЫЕ файлы, определить тип (чтоб отдать заголовок, к примеру) не представляет трудностей. Я хотел бы знать, какие меры предосторожности еще стоит ввести.