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

    +181.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $str=тут запрос и всё такое сам поймёшь Например Ник или Пароль;
    $col=strlen($str);
    for($i=0; $i <= $col ;$i++)
    {
    $d=1;
    $b= substr($str,$i,$d);
    $d++;
    if($b == chr(92)) { exit ("Hack attemp!!!"); }
    }

    http://www.askdev.ru/question/1427/Как-защититься-от-sql-инъекций/#answer2891

    pingw33n, 10 Марта 2010

    Комментарии (21)
  2. Си / Говнокод #2746

    +104.7

    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
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    /*==================================================================================*/
    /* Преобразование целого числа в ASCII												*/
    /*==================================================================================*/
    unsigned char IntToStr (unsigned long Value,unsigned char *pBuf,unsigned char n,unsigned char Zeros)
    {
    // Локальные переменные
    	unsigned char 	j = 0;
    	unsigned long 	dec;
    	uldiv_t			Tmp;
    // Программа
    // Перевод ASCII в значение
    	while (n--)
    	{
    		switch(n)
    		{
    			case 0:
    				dec = 1;
    			break;
    			case 1:
    				dec = 10;
    			break;
    			case 2:
    				dec = 100;
    			break;
    			case 3:
    				dec = 1000;
    			break;
    			case 4:
    				dec = 10000;
    			break;
    			case 5:
    				dec = 100000;
    			break;
    			case 6:
    				dec = 1000000;
    			break;
    			case 7:
    				dec = 10000000;
    			break;
    			case 8:
    				dec = 100000000;
    			break;
    			case 9:
    				dec = 1000000000;
    		}
    		Tmp = uldiv(Value,dec);
    	// Остаток
    		Value = Tmp.rem;
    	// Ограничение
    		if (Tmp.quot > 9)
    			Tmp.quot = 9;
    	// Проверка целой части
    		if (Zeros || j || Tmp.quot || (dec == 1))
    			*(pBuf + j++) = Hex_Table[Tmp.quot];
    	}
    	*(pBuf + j) = '\0';
    	return j;
    }

    без комментариев.

    angry C nerd, 10 Марта 2010

    Комментарии (13)
  3. PHP / Говнокод #2745

    +157.2

    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
    public function is_image($mime) {
    		//Функция проверяет по mime типу является ли поступивший файл изображением
    		$images_mime = array('image/jpeg','image/pjpeg','image/png','image/cgm','image/fits','image/g3fax',
    							'image/gif','image/ief','image/jp2','image/jpm','image/jpx','image/naplps',
    							'image/prs.btif','image/prs.pti','image/t38','image/tiff','image/tiff-fx',
    							'image/vnd.adobe.photoshop','image/vnd.cns.inf2','image/vnd.djvu','image/vnd.dwg',
    							'image/vnd.dxf','image/vnd.fastbidsheet','image/vnd.fpx','image/vnd.fst',
    							'image/vnd.fujixerox.edmics-mmr','image/vnd.fujixerox.edmics-rlc','image/vnd.globalgraphics.pgb',
    							'image/vnd.microsoft.icon','image/vnd.mix','image/vnd.ms-modi','image/vnd.net-fpx',
    							'image/vnd.sealed.png','image/vnd.sealedmedia.softseal.gif','image/vnd.sealedmedia.softseal.jpg',
    							'image/vnd.svf','image/vnd.wap.wbmp','image/vnd.xiff');
    		if(!in_array($mime,$images_mime)) {
    			//Не было найдено совпадений mime типа - это не картинка
    			return false;
    		}
    		else {
    			//Было найдено совпадение mime типа
    			return true;
    		}
    	}

    Кучка бредокода ради закрытия уязвимости.

    Subsanek, 10 Марта 2010

    Комментарии (28)
  4. Си / Говнокод #2744

    +100.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
    int main()
    {
    	puts("<?php\n");
    	int ch, xit, i, j;
    	for(j=0;j<4;j++) {
    	printf("$weather_date[%d]='", j);
    	xit=1;
    	while(xit) {
    	do { ch = getc(stdin); } while((ch != EOF)&&(ch != '<'));
    	if(ch == EOF) return 1;
    	h = getc(stdin);
    	if(ch == EOF) return 1;
    	if(ch == 't') {
    	ch = getc(stdin);
    	if(ch == EOF) return 1;
    	if(ch == 'd') {
    	do { ch = getc(stdin); } while((ch != EOF)&&(ch!='>'));
    	if(ch == EOF) return 1;
    	do { ch = getc(stdin); if((ch != EOF)&&(ch != '<')) printf("%c", ch); } while((ch != EOF)&&(ch != '<'));
    	if(ch == EOF) return 1;
    	printf("';\n$weather_time[%d]='", j);
    		for(i=0;((ch = getc(stdin)) != EOF)&&(i<2); i++);
    	if(ch == EOF) return 1;
    	do { ch = getc(stdin); if((ch != EOF)&&(ch != '<')) printf("%c", ch); } while((ch != EOF)&&(ch != '<'));
    	if(ch == EOF) return 1;
    	puts("';\n");
    	xit = 0;

    по крону генерится php-скрипт, прогой написанной на сях)

    xXx_totalwar, 10 Марта 2010

    Комментарии (14)
  5. PHP / Говнокод #2743

    +163.5

    1. 1
    2. 2
    3. 3
    $this->query_insert($this, array('', $mode, '', '',$id_group_new, $id_subgroup, $id_product,
    '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '', '', ''));

    Вышел на этот кусок гкода с ошибки о неверном количестве значений в sql insert, не удивился :)

    hardcoder, 10 Марта 2010

    Комментарии (18)
  6. Java / Говнокод #2742

    +73.4

    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
    public class SaveBlankElementException extends RuntimeException{
        public SaveBlankElementException(Throwable cause){
            super(cause);
        }
        public SaveBlankElementException(String message,Throwable cause){
            super(message,cause);
        }
        public SaveBlankElementException(String message){
            super(message);
        }
        public SaveBlankElementException(){
    
        }
        @Override
        public String getMessage(){
            return "Попытка сохранения пустого элемента\nНе вызван prepareCreate()";
        }
      
    }

    Зачем, спрашивается было создавать этот класс, когда можно было бы
    вызвать исключение
    throw new UnsupportedOperationException("Попытка сохранения пустого элемента\nНе вызван prepareCreate()");

    maxt, 10 Марта 2010

    Комментарии (11)
  7. PHP / Говнокод #2741

    +154.1

    1. 1
    $style = ( U_AREA != 'admin' and !defined('U_AREA_MOD') ) ?  'public/templates/' . URegistry::$settings['default_template']['value'] :  'sources/skin_acp/' . SKIN_ACP;

    ололо

    ololo, 09 Марта 2010

    Комментарии (8)
  8. Куча / Говнокод #2740

    +60.9

    1. 1
    2. 2
    3. 3
    <a href="game.php?page=buildings&cmd=insert">
    <input style='color:#0F0; font-weight: bold'; type='submit' value='bla-bla-bla'>
    </a>

    Человек ВНЕЗАПНО понял, как сделать рамку вокруг ссылки "как у кнопки".

    Int, 09 Марта 2010

    Комментарии (9)
  9. PHP / Говнокод #2739

    +163.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
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    #_connect
    mysql_connect("XX.XXX.XX.XX","user","pass") or die("chect db connect settings o_o'");
    mysql_select_db("database") or die("db not found O_o");
    #_
    
    $ip=GetIP();
    $date=date("Y-m-d H:i:s");
    $browser=GetBrowser();
    $referer=$_SERVER['HTTP_REFERER'];
    
    
    $sql="CREATE TABLE `Stats` (
    `ip` VARCHAR( 19 ) NOT NULL ,
    `date` DATETIME NOT NULL ,
    `browser` VARCHAR( 30 ) NOT NULL ,
    `referer` VARCHAR( 128 ) NOT NULL ,
    `count` MEDIUMINT NOT NULL ,
    PRIMARY KEY ( `ip` )
    );";
    
    if (!defined("ADMIN"))
    {
    	$sql="SELECT * FROM `Stats` WHERE `ip` = '$ip'";
    	$res=mysql_query($sql);	$arr=mysql_fetch_array($res);
    	if (!empty($arr))
    	{	$sql="UPDATE Stats SET Stats.count = Stats.count +1 WHERE ip = '$ip'";
    	@mysql_query($sql);
    	$sql="UPDATE Stats SET Stats.date = '$date' WHERE ip = '$ip'";
    	@mysql_query($sql);
    	}
    	else
    	{	$sql="
    		INSERT INTO `Stats`
    		( `ip` , `date` , `browser` , `referer` , `count`, `first_date` ) VALUES
    		('$ip', '$date', '$browser', '$referer', 1, '$date');
    	";
    	@mysql_query($sql);
    	};
    };
    
    Function GetBrowser()
    {	$useragent = $_SERVER['HTTP_USER_AGENT'];
    	$brows = 'none';
    	if(strpos($useragent, "Mozilla") !== false) $brows = 'Mozilla Firefox';
    	if(strpos($useragent, "MSIE")    !== false) $brows = 'Microsoft Internet Explorer';
    	if(strpos($useragent, "MyIE")    !== false) $brows = 'MyIE';
    	if(strpos($useragent, "Opera")   !== false) $brows = 'Opera';
    	if(strpos($useragent, "Netscape")!== false) $brows = 'Netscape';
    	if(strpos($useragent, "Firefox") !== false) $brows = 'Mozilla Firefox';
    	return $brows;
    };
    
    Function GetIP()
    {
    	$ip = $_SERVER['REMOTE_ADDR'];	if(empty($ip)) $ip=$_SERVER['X_FORWARD_FOR'];
    	if(empty($ip)) $ip = '0.0.0.0';
    	return $ip;
    };

    Этот код инклюдится первой строкой в index.php.

    Особенно феерично выглядит
    --
    $sql="SELECT * FROM `Stats` WHERE `ip` = '$ip'";
    $res=mysql_query($sql); $arr=mysql_fetch_array($res);
    --

    На момент аудита исходников в таблице Stats было более 300 тысяч записей и index.php отдавался примерно за 1.5 сек

    darkestmaster, 09 Марта 2010

    Комментарии (19)
  10. Си / Говнокод #2738

    +138.1

    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
    unsigned char SIM300_Reboot(void)
    {
        // проверим статус модема
        if (!pinSTATUS)             // если STATUS = 0 (модем выключен)
        {
            while (1)               //если не включается-включаем до посинения
            {
                if (!(Modem_ON()))
                    return 0;
            }
    
        } else                      // если STATUS = 1 (модем включен)
        {
            while (1)               //если не выключается - выключаем до посинения
            {
                if ((!Modem_OFF()) && (!Modem_ON()))
                    return 0;
            }
    
        }
    }

    тяжёлые будни программиста embedded-систем.
    дополнительный аромат: упомянутые функции возвращают 0 в случае успешного выполнения, а не наоборот, как можно было бы подумать при виде if (!some_func(...))

    angry C nerd, 09 Марта 2010

    Комментарии (10)