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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function banByIP($ip) {
    	$result = mysql_query("SELECT * FROM `" . $GLOBALS['mysql_bans_table'] . "` WHERE `ip` = '" . mysql_real_escape_string($ip) . "' LIMIT 1");
    	while ($ban = mysql_fetch_assoc($result)) {
    		return $ban;
    	}
    }

    Из движка TinyIB.

    Запостил: telnet, 29 Июня 2010

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

    • странное название метода, вроде он должен банить, а на самом деле тупо ищет этот бан..
      Ответить
    • показать все, что скрытоЭтой фичи не хватает на говнокоде. :((((
      Ответить
      • ага
        function banAllWebKills($ip) {
        $result = mysql_query("SELECT * FROM `" . $GLOBALS['mysql_bans_table'] . "` WHERE trim(lower(`login`)) = '"webkill"' LIMIT 1");
        while ($ban = mysql_fetch_assoc($result)) {
        //тута инсерт
        }
        }
        Ответить
        • нет, уважаемый! лимит 1 уже несколько дней как не подходит )
          да и логин надо искать по регулярке w[ee]bki[Il][Il].
          Ответить
          • к тому же не логин, а
            Ответить
          • :D, блин точно, я просто на выходных сюда не заглядывал ))
            а тут у WebKillа расчетверение личности ))))

            тогда уж лучше такую регулярку
            w[ee3]bk[iIl1]+
            чтоб всех и наверняка
            Ответить
            • Отставить всех и наверняка!
              Только что прочитал, что высочайшим решением Самого в ГК за номером 3573 было постановлено выпилить всех вебкилов кроме истинного, благого и каноничного 1431.
              Вот только свежевыпиленным оставили печеньки с авторизацией, от которых, ясное дело, никто избавляться не собирается )
              Ответить
              • Я боюсь представить, что будет, если новые зарегаются. А под одним из вебкилов похоже сидело много людей. Банда что-ли...
                Ответить
    • $GLOBALS['mysql_bans_table'] бгагага,
      while - return давненько я такого сочетания не встречал...
      Ответить
    • Я бы назвал этот движок TinyIQ.
      Ответить
      • А какой ты бы назвал TinyPinus?
        Ответить
      • Это модификация futallaby, которая написана ещё хуже. В свою очередь, последняя - это допиленная futaba, количество говнокода в которой не лезет ни в какие ворота.
        Ответить
    • за одно это "SELECT * FROM `" . $GLOBALS['mysql_bans_table'] можно застрелить.
      Ответить
      • Я все думал -- как люди умудряются сделать SQL инъекции?
        Ответить
        • Чаще всего инъекции происходят не через имена таблиц, а через параметры.
          $fa_sql = 'SELECT * FROM `papers` WHERE `id` = '.$pp_id;
          Здесь $pp_id приходил через register_globals и не приводился к целому типу.
          Ответить

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