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

    +161.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    $login['name'] = stripslashes(strip_tags(trim(htmlspecialchars($login['name']))));
    $login['live'] = stripslashes(strip_tags(trim(htmlspecialchars($login['live']))));
    $login['mobile'] = stripslashes(strip_tags(trim(htmlspecialchars($login['mobile']))));
    $login['operator'] = stripslashes(strip_tags(trim(htmlspecialchars($login['operator']))));
    $login['email'] = stripslashes(strip_tags(trim(htmlspecialchars($login['email']))));
    $login['about'] = stripslashes(strip_tags(trim(htmlspecialchars($login['about']))));
    $data['photo'] = stripslashes(strip_tags(trim(htmlspecialchars($data['photo']))));
    $login['wapsite'] = stripslashes(strip_tags(trim(htmlspecialchars($login['wapsite']))));
    $login['website'] = stripslashes(strip_tags(trim(htmlspecialchars($login['website']))));
    $login['emocii'] = stripslashes(strip_tags(trim(htmlspecialchars($login['emocii']))));
    
    
        if (empty($action)) {
            print '
    
    //тут бадяга типа формы входа
        } else {	
    		if (isset($_GET['edit'])){
    		$newpass = $_POST['newpass'];
    		$name = $_POST['name'];
    		$live = $_POST['live'];
    		$sex = $_POST['sex'];
    		$mobile = $_POST['mobile'];
    		$email = $_POST['email'];
    		$wapurl = $_POST['wapurl'];
    		$uin = $_POST['uin'];
    		$foto = $_POST['foto'];
    		$about = $_POST['about'];
    		$emocii = $_POST['emocii'];
    		$q="UPDATE `chat_users` SET 
    		`name`='".mysql_real_escape_string(htmlspecialchars($name))."', 
    		`pass`='".mysql_real_escape_string(htmlspecialchars($newpass))."' 
    		`sex`='".mysql_real_escape_string(htmlspecialchars($sex))."', 
    		`bday`='".mysql_real_escape_string(htmlspecialchars($bday))."' 
    		`bmonth`='".mysql_real_escape_string(htmlspecialchars($bmonth))."', 
    		`byear`='".mysql_real_escape_string(htmlspecialchars($byear))."' 
    		`live`='".mysql_real_escape_string(htmlspecialchars($live))."', 
    		`mobile`='".mysql_real_escape_string(htmlspecialchars($mobile))."' 
    		`email`='".mysql_real_escape_string(htmlspecialchars($email))."', 
    		`website`='".mysql_real_escape_string(htmlspecialchars($wapurl))."' 
    		`website`='".mysql_real_escape_string(htmlspecialchars($weburl))."', 
    		`icq`='".mysql_real_escape_string(htmlspecialchars($uin))."' 
    		`photo`='".mysql_real_escape_string(htmlspecialchars($foto))."', 
    		`about`='".mysql_real_escape_string(htmlspecialchars($about))."' 
    		`emocii`='".mysql_real_escape_string(htmlspecialchars($emocii))."'

    аффтар не на шутку обезопасился mysql_real_escape_string(htmlspecialchar s(tratata)) и stripslashes(strip_tags(trim(htmlspecial chars(tratata))))

    Запостил: GoodTalkBot, 06 Февраля 2010

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

    • В чем фишка?
      Ответить
    • Да лан, такое уже не смешно как-то. Весь сайт в таком говне от людей, не знающих о циклах
      Ответить
      • Весь сайт в таком говне от людей, не знающих о циклах
        смешно или не смешно, а говнокод присутствует, разве я неправ? или это сайт типа портал где люди выкладывают фильми etc. А школота кричит "Бойан" ?
        Ответить
        • Разумеется, но уже просто достало как-то =) Мы ж тут не коллекционируем говнокод всей вселенной =)
          Ответить
          • Блять даже говнокод бывает сцуко красивым. Он то и интересен
            Ответить
    • Эх, помню, когда-то гости подписываться могли, щас бы Кэпом подписался. Ну так вот, говнокодовость данного кода заключается в следующем:
      1. Использование strip_tags() после htmlspecialchars() бессмысленно, поскольку последняя экранирует теги.
      2. Использование stripslashes() после htmlspecialchars() также неуместно. Хоть слэши и будут удалены корректно, правильнее было бы удалять их до экранирования. Кроме того, следовало бы отключить magic_quotes, поскольку полагаться на них давно уже никто не полагается, кроме нубов и слоупоков, а в 6-й версии PHP их не будет. А ещё лучше написать враппер, который бы распознавал, выключены ли они, и проводил расслэшивание при необходимости.
      3. Проверка существования полей, переданных из формы, не производится. В случае лагов вылезут нотисы, если они не отключены.
      4. Копипаста, везде копипаста. За неё надо убивать.
      5. Про то, что неплохо бы цивилизованно работать с базой (aka PDO & prepared statements), уж не говорю.
      Просьба за очевидность не шпынять, мне просто заняться вечером нечем было =3
      Ответить
    • вот обясните зачем делать это с `icq`='".mysql_real_escape_string(htmlsp ecialchars($uin))."' ладно бы чел не знал о цыклах... но не знать что он фильтрует - это уж простите извращенство цифры в htmlspecialchars($uin) гнать наверное у аффтара все поля типа TEXT :))) или вот приглядитесь как дату красиво и элегантно записывает
      `bday`='".mysql_real_escape_string(htmlspecialchars($bday))."' 
      		`bmonth`='".mysql_real_escape_string(htmlspecialchars($bmonth))."', 
      		`byear`='".mysql_real_escape_string(htmlspecialchars($byear))."'

      ну не радость ли для глаз? может такого говна и очень много сдесь, но увидев это мне захотелось поделится радостью с другими :)))
      Ответить
    • показать все, что скрытоА где здесь С++?
      Ответить
    • эм, а разве mysql_escape_string не грозит инъекцией ?))))
      Ответить
    • mysql_real_escape_string(htmlspecialchar s(... мот и лишнее,
      а по стиль в целом: в децтве все мы так кодили
      Ответить
      • да вы заебали
        при моем 'децтве' всяких пхп не было
        Ответить
        • А как вы без него обходилися? Сервер, написанный на ассемблере, генерировал страничичку?
          Ответить
          • +1
            Ответить
          • Ну, лично в моем детстве страничек не было. Да и с серверами было негусто:)
            Ответить
            • Мы в детстве в войнушку играли и по заводам лазили.
              Ответить
      • $sql = sprintf("блабла '%s' ,бла бла бла '%s'",
        mysql_real_escape_string($_POST['bla']);
        разве доступно для иньекции?
        И потом насколько я знаю, htmlspecialchars(); нужно для того чтоб на странице вывода теги и етк не срабатывали нэ?
        Ответить
    • Комбинаторный взрыв?
      Ответить

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