1. PHP / Говнокод #10250

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    if(isset($_POST['submit'])){
    				$cat = $_POST['cat'];
    				
    				/** Определяем переменную дириктории */
    				if($cat == 1) :
    				$uploaddir = '../uploads/poli/'; 
    				elseif($cat == 2) : $uploaddir = '../uploads/site/';
    				elseif($cat == 3) : $uploaddir = '../uploads/style/';
    				elseif($cat == 4) : $uploaddir = '../uploads/illustration/';
    				endif;
    				
    				$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    				$file_name = $_FILES['userfile']['name'];
    				$desc = trim(htmlspecialchars($_POST['desc']));
    				$position = $_POST['pos'];
    				
    				if (!file_exists($uploadfile)){
    					/** Перемещаем фаил из временной дириктории в папку uploads */
    					if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    						/** НИКашерное обрезание  да бля стыдно ,но конец рабочего дня в голову не чего не лезит */
    						$uploadfile = substr($uploadfile,3);
    						$result = $db->INSERT('pfolio',array('img','description','cat','position'),array($uploadfile,$desc,$cat,$position));
    						if($result) : echo '<h2 style="color:green;"> Фаил успешно загружен </h2> <a href="admin.php?am=mod[portfolio]&add">Назад</a>'; else: echo 'Не удачно'; endif;
    					} else {
    						echo "Возможная атака с помощью файловой загрузки!\n";
    					}
    				}else{
    					echo '<h2 style="color:red;"> Фаил с таким именем уже сущевствует !</h2> <br /> <p style="text-decoration:underline; color : red; cursor:pointer;" onClick="history.back()">Назад</a>';
    				}

    НИкашерно обрезал

    Запостил: ilussion, 12 Мая 2012

    Комментарии (8) RSS

    • Фаил сущевствует!
      Ответить
    • Кэп, объясни, зачем оборачивать $_FILES['userfile']['name'] в basename, не первый раз такой вижу.
      Ключ name ведь всегда возвращает строго имя файла, какой там может быть путь?
      Ответить
    • если файл не удалось переместить, то это значит идет атака с помощью файловой загрузки... блин, буду знать, thnx bro...
      Ответить
      • Это пошло из какого-то мануальчика, кстати. Что-то про загрузку для дебилов. А дебилы, как известно, любят копировать всё как есть.
        Ответить
        • боян же
          php.net/file_upload или чо-то-там
          Ответить
          • Да, точно. А потом разошлось по "учебникам". Вчера как раз полез смотреть в мануал и вспомнил.
            Ответить
            • зато народ находится в наивной уверенности, что они надежно защищены от атаки через загрузку файлов, ведь они предусмотрели такой случай
              Ответить

    Добавить комментарий