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

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    ...
    chmod($file, 0777);
    unlink($file);
    ...

    На просторах интернета можно найти функцию для рекурсивного удаления папки со всем содержимым вот с таким фрагментом.

    Запостил: Uchkuma, 13 Июля 2010

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

    • - Извольте слушаться меня!
      - Да кто Вы, сударь, здесь такой?
      - Уйдите прочь!
      - Хренею с Вашей наглости!!!
      Ответить
    • [sarcasm]
      потенциальная уязвимость! блок операций неатомарен, вдруг кто-то успеет прочитать?
      [/sarcasm]

      а вообще отличный код. Топите 3684, господа!
      Ответить
    • Кстати да. Если скрипт обладает таки соответствующими правами, то у злоумышленника есть несколько наносекунд, чтобы завладеть файлом.
      Ответить
      • А для чего ещё нужно было делать файл исполнимым да ещё для всех юзеров?
        Прямо как белый кролик из «Парка юрского периода».
        Автор забыл поставить паузу между чмодом и анлинком.
        Ответить
        • Задумка автора: "А вдруг у скрипта не хватит прав на удаление файла".
          Ответить
          • Да, правда на выполнение обычно очень помогают при удалении
            Ответить
          • как раз сталкивался с обратной ситуацией: если скрипт создает временные файлы и по каким то причинам не удаляет (забыл, крешнулся) то руками удалить его уже не удается
            кстати, что бы выставить нужные права, нужно тоже иметь права
            Ответить
            • Lure Of Chaos пишет:
              кстати, что бы выставить нужные права, нужно тоже иметь права

              В том-то и говнокод!
              Ответить
              • но автор думал, что по умолчанию они такие, что можно читать и писать, но нельзя удалять!
                и еще вспомнил, что право удалить файл задается не правами файла, а контейнера (папки, директории) в которой оное валяется
                Ответить
        • а что там за белый кролик?

          а, тю, это про бэкдор Недри?
          Ответить
      • кстати, это не так уж невероятно. можно организовать два потока, один выполняет много запросов к скрипту, другой пытается атаковать. как только фазы совпадут - вуаля
        Ответить

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