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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    if(!get_magic_quotes_gpc()) {
    	$_GET = addslashes($_GET);
    	$_POST = addslashes($_POST);
    }

    Шедевры отечественного экранирования. Из недр движка http://linuxnow.ru

    Запостил: telnet, 18 Сентября 2010

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

    • >http://linuxnow.ru/source/
      >Исходный код SimpleBlog
      >Нестабильно!

      систему контроля версий даже не осилили, о чем тут вообще говорить, когда теги к посту хранятся как char(255)
      Ответить
      • это у нас альфа-бета-rc-stable-sr, а у хомячков:
        только начал(альфа)
        работает, но не все(бета)
        не успеваю доделать(релиз кандидат) - НЕСТАБИЛЬНО!
        работает, но не знаю как (билд)
        теперь прога не вываливается, а выдает сообщение об ошибке, но лучше не трогать (сервис релиз)
        Ответить
    • типа "верните нам волшебные кавычки!!"?
      о да, теперь мы в безопасности.
      Ответить
    • http://linuxnow.ru/view.php?id=4
      Она такие юмористы.

      http://linuxnow.ru/view.php?id=20
      А еще они умеют конпелировать пхп!

      Такое ощущение складывается, что это друзья nemo.
      Ответить
      • упал пад лафку и нимагу падняца, ржуууу
        цитата: "Многие разработчики тестируют PHP проекты на локальном сервере, а код пишут в простом текстовом редакторе. Не многие знают, что можно исполнять и проверять код на PHP не заходя в веб-браузер и без участия веб-сервера."

        пхп-разработчики такие разработчики, что не знают ни ZendStudio/Eclipse/NetBeans/PHPStorm, ни CVS/SVN/GIT. Я-то думал, только некоторые, а оказывается, многие....
        Ответить
        • судя по всему, автор - восторженный школьник
          Ответить
          • скачал ради интересу код, глянул... и опять в ржач:

            >Нестабильно!
            >09-April-2010 16:33

            а по виду этому коду лет 13, видал я такое на стыке веков века....
            Ответить
    • Аа!11
      денвер под линукс!!11

      http://linuxnow.ru/view.php?id=67

      ракмозга проник и туда
      Ответить
      • lamp - это xampp, а не денвер
        Ответить
        • ламп это дурацкое название для платформы, а вот что хомячки, не умеющие поставить апаче из репозитория пробрались в линукс -- это для меня новость.

          Близок тот час, когда школьник-админ на очередном говнохостинге пустит ксампп в продакшен.)
          Ответить
          • имхо под линь гораздо проще поставить все родное, чем мучать ламп - пробовал :)

            > Близок тот час, когда школьник-админ на очередном говнохостинге пустит ксампп в продакшен.)
            насчет ксамппа не знаю, но в денвере этот вопрос часто задаваемый
            Ответить
            • >>имхо под линь гораздо проще поставить все родное, чем мучать ламп - пробовал :)
              кроме того он лучше будет работать.

              У меня один знакомый пхпшник купил какой-то понос для управления сервером через веб (что бы сэкономить на админе), и этот понос поставил ему пакетик с мускулем, который скомпиляли видимо разработчики этого говна, да так чудесно, что мускуль тормозил как проклятый.

              Вопреки своим принципам я не стал разбираться, а просто грохнул эту гадость, и поставил мускуль из официального репозитория (кажется это был fedora, и я сделал yum install).
              Официальная сборка мускуля залетала.
              Я так и не знаю, в чем было дело: в оптимизации под древний проц ли, в размере кешей, в ключике оптимизации типа O2, в какой-то игре с потоками.. как бы то ни было -- официальная сборка работала намного лучше самосборки горе-авторов.

              А уж от какого dependency hell я его спас переведя с говна на встроенную в операционку систему репозиториев -- подумать страшно.

              Посмотрел бы я как он без репозитория обновлял бы себе mysql и все зависящие от нее штуки:)

              А то ставят всё руками, а потом у них mysql 5.2 а у php библиотека от 3.23. И удивляются -- почему глючит.

              Я реально видел на опеннете статью, где какой-то школьник учил всех ставить mysql на фрю.
              Начиналась она с того, что он WGETом выкачивал сырцы мускуля.

              На фрю! Где системе портов больше лет, чем ему. И прямо в хендбуке написано, как ими пользоваться.

              >>насчет ксамппа не знаю, но в денвере этот вопрос часто задаваемый
              какой вопрос?:) как поставить денвер на хостинг?
              мамочки!
              Ответить
              • > кроме того он лучше будет работать.
                конечно, ведь собираем индивидуальную штуку, а не ширпотреб - если руки растут откуда надо, конечно.

                > Посмотрел бы я как он без репозитория обновлял бы себе mysql и все зависящие от нее штуки:)
                очень просто - скачал бы свеженький понос, а без него у него был бы запор.

                > Начиналась она с того, что он WGETом выкачивал сырцы мускуля.
                экскурия по аду: скачать, собрать, выискать зависимости... райское наслаждение для мазохистов

                > как поставить денвер на хостинг?мамочки!
                ага, "как сделать денвер видимым из интернета или локальной сети?" http://www.denwer.ru/faq/
                Ответить
                • >>очень просто - скачал бы свеженький понос, а без него у него был бы запор.
                  Так и вижу: "я хочу функцию some_func, она уже год как есть в php, но в моем софте для админства сервера ее нет, потому что нижегородские студенты, которые его делают, еще не вернулись с дачи".

                  >>как сделать денвер видимым из интернета или локальной сети
                  Боженька, уничтожь котерова
                  Ответить
                  • > Так и вижу: "я хочу функцию some_func, она уже год как есть в php, но в моем софте для админства сервера ее нет, потому что нижегородские студенты, которые его делают, еще не вернулись с дачи".

                    пока студенты ее не сделают, хомячки о ней не узнают


                    > Боженька, уничтожь котерова
                    Не того просим, боженька слишком мягкотелый. И вообще, котеров честно признается, что в его сборке дохуища дыр, и отговаривает от этой глупой затеи
                    Ответить
    • по моему вполне норм костыль от двойного заслешивания, или щас модно слешить отдельно каждое значение непосредственно перед записью?
      Ответить
      • Спасибо, поржал.
        Ответить
      • Щас модно преобразовывать массивы в NULL с двумя warning'ами впридачу, это фантастическое экранирование (super_magic_quotes)
        Ответить
      • сейчас модно сделать класс для работы с параметрами запроса, и скрыть в нём всю эту логику.
        Ответить
      • поддерживаю.
        Ответить
        • И Вы туда же?.. Вы тоже предполагаете что функция "addslashes ()" на вход которая принимает тип string нормально отработает с типом array?..
          Вы меня убиваете...
          Ответить
          • ах да, тьфу ты, не заметил, что она применяется к массивам.
            Ответить
    • "не должна работа с компилятором превращаться в борьбу с ним" (с) Крис Касперски.

      Программирование на пыхапэ на 20% состоит из борьбы с ним, с его мэджик квотесами, регистер глобалсами и прочим сифилисом)
      Раньше к этому еще добавлялся совершенно не нужный рашен апаче, который говноодмины юзали чуть ли не года до 2003го, потому что на опеннете так написано было.
      Ответить
      • Не поверите, но у нашего местного прова до сих пор вроде как russian apache стоит. Возможность поменять на нормальный апач добавили года два-три назад только. Да и то как-то сконфигурирован там по образу и подобию того чуда, так что нормальной работы от него не дождаться.
        Ответить
        • ну пока на опеннете новую статью не напишут -- админы Вашего прова не смогут оттуда скопировать конфиги, так что прийдется ждать статьи на опеннете)
          Ответить
    • Автор, покажи как надо. (а вообще я против magic_quotes, я за проверку, а не за add_slashes)
      Ответить
      • function foo($request) {
        echo $request->getVariable('userName');
        }
        ////////////////
        class Request {
          function getVariable($strVarName) {
             if (! isset($_REQUEST[$strVarName]) {
                  return null; //или кинуть эксепшен -- как нравица
             } 
             $strVarValue = $_REQUEST[$strVarName];
             if (get_magic_quotes_gpc()) {
                 $strVarValue  = strip_slashes($strVarValue);
             }  
            return $strVarValue;
          }
        }


        да, этот код можно улучшить: можно сохранять значения в приватном свойстве что не читать их каждый раз, можно вынести обработку в отдельную функцию для красоты, много чего можно сделать.

        Но этот вариант в тысячу раз лучше предложенного.
        Ответить
        • кавычки, реквесты, стрипслэши..
          в пыхомире еще не изобрели валидаторы?
          Ответить
          • Изобрели. Filter, например, идёт в комплекте с версией 5.2, до этого надо было ставить из PECL. Вот только один хрен всем похуй и никто не пользуется.
            Ответить
    • вообще проект доставляет.
      Я такое люблю. Открыл наугад файлик edit_settings.php и замер
      Ответить

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