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

    +144

    1. 1
    // кода не выкладываю, по соображениям безопасности

    Не писаным правилом безопасности (при создание сайтов) считается, что доступ к админке в целом и конкретно к отдельным её частям должен иметь только авторизированный пользователь. На самом деле все обстоит не так, с уже известной вам горе компании (КСК), для примера привожу безобидное (дабы не пошли ломать ресурсы) пренебрежением безопасности: http://amisharin.ru/admin/ieeditor/ieeditor.php?vname=htmlcode
    Как видно не авторизированный пользователь получает доступ к редактору (который, кстати, стабильно работает, только в IE6).

    MoLe-X, 06 Апреля 2010

    Комментарии (13)
  2. Java / Говнокод #2937

    +77.6

    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
    public void run()
        {
            try
            {            
                startExport();
            }
            catch (Throwable _t)
            {
                sendEvent(""+_t.getMessage(), true);
                logger.log(Level.SEVERE, charset, _t);
            }
            finally
            {
                System.gc();
            }
        }

    А ещё этот человек дёргает в одном сервисе gc каждые 4 секунды. Любые попытки ударить по рукам нарываются на отлуп: "так работает же!". Это не студент! Это реальный production код!

    konsoletyper, 06 Апреля 2010

    Комментарии (15)
  3. 1C / Говнокод #2936

    −364.8

    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
    Процедура ДействияФормыСформировать(Кнопка)
    	Запись = Новый Структура;
    	Запись.Вставить("Номер",);
    	Запись.Вставить("ФизЛицо",);
    	Запись.Вставить("ТабНомер",);
    
    	Запись.Вставить("д1",);
    	Запись.Вставить("д2",);
    	Запись.Вставить("д3",);
    	Запись.Вставить("д4",);
    	Запись.Вставить("д5",);
    	Запись.Вставить("д6",);
    	Запись.Вставить("д7",);
    	Запись.Вставить("д8",);
    	Запись.Вставить("д9",);
    	Запись.Вставить("д10",);
    	Запись.Вставить("д11",);
    	Запись.Вставить("д12",);
    	Запись.Вставить("д13",);
    	Запись.Вставить("д14",);
    	Запись.Вставить("д15",);
    	Запись.Вставить("д16",);
    	Запись.Вставить("д17",);
    	Запись.Вставить("д18",);
    	Запись.Вставить("д19",);
    	Запись.Вставить("д20",);
    	Запись.Вставить("д21",);
    	Запись.Вставить("д22",);
    	Запись.Вставить("д23",);
    	Запись.Вставить("д24",);
    	Запись.Вставить("д25",);
        	Запись.Вставить("д26",);
    	Запись.Вставить("д27",);
    	Запись.Вставить("д28",);
    	Запись.Вставить("д29",);
    	Запись.Вставить("д30",);
        	Запись.Вставить("д31",);

    Не ожидал от своего коллеги такого говнокода :) Хорошо, что в месяце не 100 дней ;_)
    Данный код можно заменить
    Для й = 1 По 31 Цикл
    Запись.Вставить("д" + Строка(й));
    КонецЦикла;

    tiger_x, 06 Апреля 2010

    Комментарии (26)
  4. PHP / Говнокод #2935

    +171

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Сначала я увидел такой самонадеянный способ "послать нахуй все инъекции" (magic_quotes_gpc при этом вообще не проверялись :-))
    
    # Посылаем смело нахуй все инъекции
    foreach($_GET as $name => $value){
        $_GET[$name] = mysql_real_escape_string($value);
    }
    foreach($_POST as $name => $value){
        $_POST[$name] = mysql_real_escape_string($value);
    }
    
    // А потом - следующее (обратите внимание на отсутствие кавычек для GET параметров)
    $result = mysql_query("SELECT * FROM ".$_GET['index_country']." WHERE id = ".$_GET['index_to_edit']);

    Хочется передать автору этого креатива большое спасибо за то, что доставил мне массу лулзов при нахождении этого и других багов :-) Если народ и дальше будет думать, что этого достаточно чтобы избавиться от инъекций, я без денег точно не останусь )))))))))))

    skrostislav, 05 Апреля 2010

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $birthDay = $elements['birthDay']->getValue();
    
    $d = $birthDay[0].$birthDay[1];
    $m = $birthDay[3].$birthDay[4];
    $y = $birthDay[6].$birthDay[7].$birthDay[8].$birthDay[9];
    
    $birthDay = mktime(0, 0, 0, (int)$m, (int)$d, (int)$y);

    Вот так вот в ПХП 5.2 конвертим дату из dd.mm.yyyy в timestamp

    paranoid, 05 Апреля 2010

    Комментарии (14)
  6. VisualBasic / Говнокод #2933

    −132.6

    1. 1
    2. 2
    3. 3
    4. 4
    If objRow.IsQuestion_SpecialismNull Then
                '--- ASK DEAN
                Return True
    End If

    Dean - наш тим лид

    6istik, 05 Апреля 2010

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

    +166.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
    <?
    $fileSelect = array();
    $sql  = 'SELECT * FROM bd_file';
    $stmt = db_prepare($sql, $file); $res  = db_query($stmt);
    while($row = db_fetch_row(res))
    {
    	if (!is_file(filefolder.'/'.$row[название_файла]))) {
    		$fileSelect[$file] = $file;
    	}
    }
    unset($fileSelect);
    ?>

    В добавок к #2929.
    Этим образом идет проверка существование документов в панели администратора

    MoLe-X, 05 Апреля 2010

    Комментарии (3)
  8. Си / Говнокод #2931

    +92.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    void Read_Ri( int hARINC,unsigned short int *Data ,int *i16,int *i15,int *i14,
    	int *i13,int *i12,int *i11,int *i10,int *i9,int *i8,int *i7,int *i6,int *i5,int *i4,int *i3,int *i2,int *i1)
    {
    		ioctl(hARINC,IOCTL_GET_RI,Data);
       		*i16=Data[0x1104]>>15&1; *i15=Data[0x1104]>>14&1; *i14=Data[0x1104]>>13&1;
    		*i13=Data[0x1104]>>12&1; *i12=Data[0x1104]>>11&1; *i11=Data[0x1104]>>10&1;
    		*i10=Data[0x1104]>>9&1; *i9=Data[0x1104]>>8&1; *i8=Data[0x1104]>>7&1;
    		*i7=Data[0x1104]>>6&1; *i6=Data[0x1104]>>5&1; *i5=Data[0x1104]>>4&1;
    		*i4=Data[0x1104]>>3&1; *i3=Data[0x1104]>>2&1; *i2=Data[0x1104]>>1&1; *i1=Data[0x1104]&1;
    }

    Фирма "Элкус" порадовала. Хорошо, что у их платы не 32-разрядные регистры :)

    whiskey, 05 Апреля 2010

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

    +162.8

    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
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    <?php 
       function db_connect($host, $user, $pass, $db) {
           global $glink;
           $glink = mysql_connect($host, $user, $pass) or db_give_error(3, '', db_error($glink));
            mysql_select_db($db, $glink) or db_give_error(4, '', db_error($glink));
    		mysql_query("SET CHARSET cp1251",$glink);
           return $glink;
       }
       
       function db_query($sql, $log = 0) {
           global $glink;
           $res = mysql_query($sql, $glink) or db_give_error(5, $sql, db_error($glink));
           return $res;
       }
                
       function db_fetch_row($res) {
           $row = empty($res) ? false : mysql_fetch_row($res);
           return $row;
       }
       
       function db_num_rows($res, $stmt = '') {
           $rows = mysql_num_rows($res); 
           if (null === $rows) db_give_error(6, '', db_error($glink));
           return $rows;
       }
      
       function db_num_fields($res, $stmt = '') {
           $fields = empty($res) ? false : mysql_num_fields($res);
           if (null === $fields) db_give_error(7, '', db_error($glink));
           return $fields;
       }
        
       function db_field_name($res, $fld) {
           $name = (empty($res) or !isset($fld)) ? false : mysql_field_name($res, $fld);
           if (false === $name) db_give_error(8, '', db_error($glink));
           return $name;
       }
       
       function db_affected_rows($res) {
           global $glink;
           $rows = mysql_affected_rows($glink); 
           if (null === $rows) db_give_error(9, '', db_error($glink));
           return $rows;
       }
    
       function db_insert_id($id = 0) {
           $id = mysql_insert_id();
           return ($id) ? $id : 1;
       }
       
       function db_next_id($table, $field, $seqname = 'seq') {
           return 0;
       }
       
       function db_errno($res) {
           return mysql_errno($res);
       }
       
       function db_error($res) {
           return mysql_error();
       }
       
       function db_free_result($res) {
           $res = mysql_free_result($res);
           return $res;
       }
    ?>

    Все из того же проекта (http://govnokod.ru/2929). авторам видимо надоело писать mysql_ и они решили сделать свой аналог db_. При чем смысла от этого полный NULL. Говнокод, он и в Африке говнокод

    MoLe-X, 05 Апреля 2010

    Комментарии (23)
  10. PHP / Говнокод #2929

    +165

    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
    $fileSelect = array();
    if (is_dir($filefolder)) {
        if ($dh = @opendir($filefolder)) {
            while (($file = readdir($dh)) !== false) {
                if (filetype($filefolder . $file) == "file" and $file != "0.txt") {
                    $sql  = 'SELECT * FROM bd_file WHERE file_file = ?';
                    $stmt = db_prepare($sql, $file); $res  = db_query($stmt);
                    if (!db_num_rows($res)) {
                        $fileSelect[$file] = $file;
                    }
                }
            }
        }
        closedir($dh);
    }
    ...
    unset($fileSelect);

    Сервер медленно умирал, так как данная конструкция вызывалась при каждом удобном случае, будь то добавление нового файла или скачивание. Самое поразительное, что с полученным массивом нечего не делали, а тупо уничтожили

    P.S. минимальная стоимость сайта у этой фирмы 3.000.000 рублей

    MoLe-X, 05 Апреля 2010

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