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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for ($i = 0; $i <= strlen($_POST[login]); $i++) {
         $b = substr($_POST[login], $i, 1);
       if(($b==q) || ($b==w) || ($b==e) || ($b==r) || ($b==t) || ($b==y) || ($b==u) || ($b==i) || ($b==o) 
         || ($b==p) || ($b==a) || ($b==s) || ($b==d) || ($b==f) || ($b==g) || ($b==h) || ($b==j) || ($b==k) || ($b==l) || ($b==z) 
         || ($b==x) || ($b==c) || ($b==v) || ($b==b) || ($b==n) || ($b==m) || ($b==" ") || ($b==й) || ($b==ц) || ($b==у) || ($b==к) 
         || ($b==е) || ($b==н) || ($b==г) || ($b==ш) || ($b==щ) || ($b==з) || ($b==х) || ($b==ъ) || ($b==ф) || ($b==ы) || ($b==в) 
         || ($b==а) || ($b==п) || ($b==р) || ($b==о) || ($b==л) || ($b==д) || ($b==ж) || ($b==э) || ($b==я) || ($b==ч) || ($b==с) 
         || ($b==м) || ($b==и) || ($b==т) || ($b==ь) || ($b==б) || ($b==ю))
      { echo $b; }
     }

    Чувак на php.ru попросил помочь и выложил свои наработки. После чего - эпическая цитата

    "А админам скажу: у меня есть опыт PHP и не маленький, зачем меня переводить в PHP для новичков:( "

    Запостил: tommyangelo27, 15 Ноября 2011

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

    • О, да, это пхп для профи!
      Именно из за таких дятлов стебут пхпшников!
      Ответить
    • такое даже на говно код не тянет больше на трололо. Почему тут тролят ?
      Ответить
    • совет админам: переименовать раздел новичков в раздел кулхацкеров.
      Ответить
    • Не могу понять, зачем вообще этот код?
      Ответить
    • А оно разве не ругнётся на отсутствующие константы?
      Ответить
      • Кажется, что проблема не только в этом)))
        Ответить
      • варнинг кинет. Если они подавлены то вообще все будет ровно.
        А говно больше в концепции. Валидировать логин плохо, если меня зовут О`Генри Так что мне не регаться на сайте.
        Ответить
        • Наоборот, очень хорошо. Идеальный логин не содержит пробельных символов, зато содержит только символы латинского алфавита, цифры и некоторые другие символы.
          Ответить
          • и к нему такой же классный пароль. Хацеры кайфуют.
            Ответить
            •   ▲
              ▲ ▲
              Ответить
            • А чё, вот на мейл ру, насколько я помню, когда менял пароль, меня попросили, чтобы в нём была только латиница и цифры.
              Ответить
              • И первым же облачным брутом тебя ломают.
                Ответить
                • Это уже проблема сервиса. Пять неудачных попыток входа - блок на пять минут. Через триста миллионов лет его сломают или через сто - уже неважно.
                  P.S. Не имею ничего против использования любых символов в пароле. А вот в логине быть не должно.
                  Ответить
                  • > Пять неудачных попыток входа
                    echo 'Hacker detected!';

                    Ну или format C как вариант.
                    Ответить
                    • Отличить брут от пользователя довольно тривиально, если что. Если облачко или ботнет решает подобрать, то ящик блочится. Конечно, так мы получаем что-то типа DoS, но зато секьюрно.
                      Ответить
                  • Пять попыток каждые пять минут — и вам уже не важно, что ваш пароль не подобрали.
                    Ответить
                    • Механизм защиты от такого возможен. Плюс, не забываем про капчу. Если для спама можно заставить китайцев распознавать за полцента, то тут число комбинаций даже для шестисимвольного пароля будет ой-ой-ой. За такую сумму я свой ящик так отдам.
                      Ответить
                      • Какой механизм? Как отличить легального пользователя от удачной попытки подбора?
                        Ответить
                        • ...
                          Ответить
                        • Удачной оно будет с вероятностью, например, 4,5е-8 процента. Единственная трудность - банить так, чтобы при этом не заблокировать возможного пользователя. Само собой, если сидеть в одной сети с пользователем и брутить его пароль, и есть процедура блокировки адресов, то он доступа не получит.
                          Ответить
    • подтверждаю. опыт есть.
      Ответить
    • показать все, что скрытоvanished
      Ответить

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