1. Куча / Говнокод #12042

    +100

    1. 1
    2. 2
    3. 3
    4. 4
    <form action="/cgi-bin/repare.mpl" method="post" enctype="multipart/form-data" class="frm">
    	<input type="hidden" name="sql" value="UPDATE  parcels p, parcels_doc d SET p.state = 'transporter_store' WHERE  d.doctype = 'confirm.L'  AND d.docid IN ($SORD)  AND p.good  IN ($ter)  AND d.docitem = p.good  AND p.state <> 'transporter_store'  AND d.parcel = p.id">
    	<input type="submit" class="butt" name="main_ok" value="Исправить">
    </form>

    Нашли тут в боевом проекте шедевральную SQL Injection "by design".

    Запостил: aml, 01 Ноября 2012

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

    • > class="butt"
      да, это жопа.

      ссаными тряпками за такой десигн
      Ответить
      • > ссаными тряпками за такой десигн
        А вдруг там внутри спрятан парсер SQL, проверяющий запросы на валидность и безопасность, или в базе на триггерах реализована защита от правки чужих записей?
        Ответить
    • Господи... Этот говнокод идеален...
      Ответить
    • I cant believe this shit.jpg
      Ответить
    • Это даже не дыра... Это парадный вход, украшенный гирляндами и иллюминацией, около которого стоят цыгане с медведями и играют на балалайках...
      Ответить
    • В палату мер и весов, срочно! Мы нашли его!
      Ответить
    • Даа, после такого "repare" чинить будет нечего.
      Ответить
    • снимаю шляпу
      Ответить
    • объясните тем, кто не в теме
      Ответить
      • Все смеются над второй строкой.

        Представим себе форму, у которой нет никаких полей ввода, а есть только кнопка отправки и скрытое поле с некоторым выражением, которое очень легко исправить в Опере с помощью Ctrl+U (или как там с правкой в Фаербагах и прочих средствах отладки), применить изменения и нажать кнопку отправки. Смеяться надо над значением value.
        Ответить
        • да. хотите вы этого или нет, но ваш сайт всегда опенсорс.
          если он не полностью флеш.
          Ответить
          • Кстати, какая сейчас ситуация с декомпиляторами ActionScript? Хуже, чем у Java, или нет?
            Ответить
            • ну у меня получалось больше жабакода декомпильнуть, чем ас - так, чтобы собиралось взад.
              Ответить
            • На AS - смотря что декомпилировать. Есть три разные вещи, которые декомпилировать тяжело / практически невозможно востановить до исходного кода:
              - всякие флексовые классы, в которых было очень много кодогенерации (обычно недопонятой программистом). Флексовая кодогенерация отличается рандомальностью и необратимостью.
              - вставки написаные на чем-то другом типа Хекса, или обработаные чем-то типа Azot'a. Хекс особенно будет тяжело декомпилировать, и получить из него вменяемый AS код по определению не возможно.
              - шейдеры, т.как они вообще не на AS.
              Ответить
          • Ну это не публичный сайт, а внутренная CRM, но всё равно. Ушлого народу хватает.
            Ответить
          • > да. хотите вы этого или нет, но ваш сайт всегда опенсорс.

            А это ещё почему? Разве можно узнать исходный пыхокод сайта?
            Ответить
            • Вы не поверите...
              http://habrahabr.ru/post/70330/
              Иногда можно. Причём иногда — это мягко сказано.
              Ответить
              • Какой ужас. Яндекс и компания пилят свои сайты прямо на боевом сервере?
                Ответить
                • Не факт. Может быть, им проще скопировать из репозитория всё дерево файлов, чем отфильтровывать поддиректории .svn.
                  Ответить
                  • Так статья-то древняя... начиная с 7-й версии SVN уже и не создает свои директории в каждой директории. Да и до 6-й версии можно было сделать экспорт только содержания, без истории. Просто разгельдяйство, вряд ли чем-то другим тут руководствовались.
                    Ответить
                    • > начиная с 7-й версии SVN уже и не создает свои директории в каждой директории
                      Ага, там одна большая в корне, что резко упрощает алгоритм выковыривания исходников: не надо запиливать рекурсию. Да и обновились ещё далеко не все.
                      Ответить

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