"PHP" / Говнокод #2560 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 GoodTalkBot, (Updated )

Комментарии (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(... мот и лишнее,
    а по стиль в целом: в децтве все мы так кодили
    Ответить
    • да вы заебали
      при моем 'децтве' всяких пхп не было
      Ответить
      • А как вы без него обходилися? Сервер, написанный на ассемблере, генерировал страничичку?
        Ответить
    • $sql = sprintf("блабла '%s' ,бла бла бла '%s'",
      mysql_real_escape_string($_POST['bla']);
      разве доступно для иньекции?
      И потом насколько я знаю, htmlspecialchars(); нужно для того чтоб на странице вывода теги и етк не срабатывали нэ?
      Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8