За последние 24 часа нас посетили 17983 программиста и 1592 робота. Сейчас ищут 1016 программистов ...

закачка файла на сервер + безопасность

Тема в разделе "PHP для новичков", создана пользователем antonn, 25 ноя 2007.

  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Закачиваю файл на сервер (через post, код самый обычный), в определенную папку.
    Достаточно ли для безопасности подозрительные расширения (php/js) закачивать с именем md5(имя файла).".txt", и в нужной папке htaccess:
    PHP:
    1. RemoveHandler .php .phtml .pl
    2. AddType text/html .php .phtm .htm .html .phtml .pl
    т.е. в общем то я не даю выполнится скриптам php (на всякий случай:)), перл отключен, в самом сайте нет инклудов из переменных, имя файла более чем безопасно (да и не светится оно нигде, т.е. узнать его проблематично, но на это не расчитываю).
    Расширение получаю:
    ext=strtolower(strrchr("имя закачиваемого файла","."));
    С точки зрения безопасности - этого достаточно для правильного определения расширения?

    Вообще, где могут быть дыры? Этих мер достаточно, чтобы мне не испортили жизнь? :)
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Есть такая вещь, как mime type
    http://ru2.php.net/manual/ru/function.m ... t-type.php

    А файлы с потенциально опасным расширением переименовывать. Скажем index.php.tmp. А tmp открывать апачем как файл для скачивания.
     
  3. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Kreker
    и что она мне дает?
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    PHP:
    1.  
    2. <?php
    3. ...
    4. $TYPE = $_FILES['uFile']['type'];
    5. 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]");
    6. ...
    7. ?>
    8.  
     
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Elkaz

    и чаво? :) у меня нет проблемы с определением типа закачиваемого файла. у меня вопрос по уже закачаным файлам, как от них обезопаситься.
     
  6. Anonymous

    Anonymous Guest

    Предохранятся лучше, чем потом лечится.
     
  7. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Горбунов Олег
    именно за этим я и создал тему.
    Кто еще не понял - я закачиваю ЛЮБЫЕ файлы, определить тип (чтоб отдать заголовок, к примеру) не представляет трудностей. Я хотел бы знать, какие меры предосторожности еще стоит ввести.
     
  8. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    люди, ау %)