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

    +2

    1. 1
    ....iv>'.(isset($row['add_descr']) ? $row['add_descr']:'').'</td....

    угу, в реальном сайте, который на нашей (говно)поддержке

    Запостил: kostya1337, 31 Марта 2016

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

    • Не сметь гнать на на goto! Лучше вместе обосрем constexpr-ы
      Ответить
    • Видать ктото раздражают Notice
      Ответить
    • @$row['add_descr'] ?: ''
      Ответить
    • Расскажите, что не так? Ну кроме может передачи неподготовленных данных в представление.
      Ответить
      • Вы наверное в основном на PHP пишите, да?
        Ответить
      • Ну хотя бы <что-то, похожее на div>...<что-то, похожее на /td>

        Допустим, с вёрсткой всё в порядке. Тогда можно сделать примерно так:
        <?php
        
        if (!isset($row['add_descr'])) {
            $row['add_descr'] = '';
        }
        
        ?>
        
        ...
        
        <td><?=$row['add_descr']?></td>


        Тогда шаблон читается легче.
        Ответить
        • add_descr = "a<b"
          и всё, пиздец
          Ответить
          • А вдруг там уже заэкранировано? Ну а вдруг?
            Ответить
            • Не думаю. Вопрос экранирования в PHP сообществе еще не решен

              http://goo.gl/uFyieH
              Ответить
              • Там про SQL-инъекции. А вдруг от HTML-инъекций они уже научились защищаться?
                Ответить
                • Ну вот в джумле какой-то костыль как-то прикрутили. Я не разбирался, как именно, но шаблон злобно экранирует всё подряд, пока явно не отключишь эту фичу (если очень надо вывалить сырой html).
                  Ответить
                  • ну да
                    в гугл "joomla xss", гг
                    Ответить
                    • Хех, если человек хочет прострелить себе ногу - он её прострелит...
                      Ответить
                • нет
                  http://goo.gl/7D5aFA
                  Ответить
        • а можно и просто <td><?=$row['add_descr']?></td

          таки
          public function actionFoo(){
          $s = 'blabla'.'bla';
          $s1 = 'blabla'.null.'bla';
          if ($s1 === $s){
          echo 'wow';
          }
          }
          Ответить
          • Получим log забитый notice-ами -> не обращаем на них внимания -> рано или поздно пропускаем критичный notice.
            Ответить
            • открываем нотпад++ -> профит!
              https://habrahabr.ru/company/payonline/blog/280530/
              Ответить

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