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

    −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
    <?php
    	$f = fopen('comments', 'a');
      $name = htmlspecialchars($_POST['name']);
      if( strlen($name)<8 || strlen($name)>40 ) #из-за русских символов умножаем на два
        exit("Имя должно иметь длину от 4 до 20 символов!");
      $msg = htmlspecialchars($_POST['text']);
      if( strlen($msg)<30 || strlen($msg)>500 )
        exit("Сообщение должно иметь длину от 30 до 500 символов!");
      $text = "\n#${name}\n##${msg}";
      $r = fwrite($f, $text);
      if($r) echo <<<TEXT
      Спасибо за ваш комментарий!<br>
      <a href="comments.php">Вернуться назад</a>
    TEXT;
      else echo 'Ошибка IO_WRITE';
      fclose($f);
    ?>

    Часть 2! Зацениваем пацаны по 100 больной шкале

    KoderOT-Boga, 17 Октября 2017

    Комментарии (0)
  2. PHP / Говнокод #23417

    −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
    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
    <html>
    <br>
    <div style="text-align:center">
    <form action="add.php" method="post">
    Ваше имя: <input type="text" name="name" /><br>
    Текст: <input type="text" name="text" /><br>
    <input type="submit" value="Отправить"/>
    </form>
    </div>
    
    <br>
    
    <div>
    <h2 style="text-align:center">Комментарии</h1>
    <?php
      $f = fopen("comments", "r");
      if($f)
      {
        while(!feof($f))
        {
          echo '<div style="border-style:groove; margin-bottom:10px">';
          $ch = fgetc($f);
          if($ch = '#')
          {
            fgetc($f);
            echo '<span style="font-weight:bold">';
            echo fgets($f); //читаем имя
            echo "</span><br>";
          }
          fgetc($f); fgetc($f);
          echo fgets($f), "<br>"; //читаем комментарий
          echo '</div>';
        }
        fclose($f);
      }
      else
        echo "Ошибка загрузки комментариев! Свяжитесь с администратором.";
    ?>
    </div>
    
    </html>

    Минималистичное комментирование! Часть 1

    KoderOT-Boga, 17 Октября 2017

    Комментарии (0)
  3. Java / Говнокод #23416

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(keys.b && !keys.n) //ГЛЮЧИТ АЛГОРИТМ
            {
              if(old_ch != '\n' && ch == '\n') System.out.format("%6d  ", ++line);
              System.out.format("\nLINE: %d\told_ch=='%c' \t ch='%c'\n", line, old_ch, ch); //дебаг
            }

    Нихуя так read использовать

    KoderOT-Boga, 17 Октября 2017

    Комментарии (0)
  4. SQL / Говнокод #23415

    0

    1. 1
    UPDATE `xxx` SET `updated_count` = (UPDATE `yyy` SET `zzz` = 0 WHERE `zzz` = 42)

    Минимальный код в моей проблеме. Проблема в том, что UPDATE должен возвращать число изменённых строк, а MYSQL говорит, что тут ошибка. Что же мне теперь делать?

    d_fomenok, 16 Октября 2017

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

    +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
    include 'db.php';
    
    $login = $_POST['login'];
    $pass = $_POST['pass']);
    
    $check = mysql_query("SELECT * FROM `users` WHERE login = '" .$login. "'");
    $dbarr = mysql_fetch_array($check);
    
    if($dbarr['pass'] != $pass) {
        setcookie("wrongpass", 'yes', time() + 4, "/");
        header("Location: /index.php");
        return;
    }

    Интересный способ вывода оповещения о не верном пароле, в index.php обрабатывается cookie wrongpass, и если он есть выводится оповещение.

    Lantos, 16 Октября 2017

    Комментарии (15)
  6. C++ / Говнокод #23413

    +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
    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
    #define PS *p++!=*s++  /* Body of inner unrolled matching loop.         */
    #define ITEMMAX 16     /* Maximum number of bytes in an expanded item.  */
    {const char *p_src=p_src_first;
     char *p_dst=p_dst_first;
     const char *p_src_post=p_src_first+src_len;
     char *p_dst_post=p_dst_first+src_len;
     const char *p_src_max1=p_src_post-ITEMMAX,*p_src_max16=p_src_post-16*ITEMMAX;
     const char *hash[4096];
     char *p_control; short int control=0,control_bits=0;
     *p_dst=FLAG_COMPRESS; p_dst+=FLAG_BYTES; p_control=p_dst; p_dst+=2;
     while (TRUE)
       {const char *p,*s; short int unroll=16,len,index; int offset;
        if (p_dst>p_dst_post) goto overrun;
        if (p_src>p_src_max16)
          {unroll=1;
           if (p_src>p_src_max1)
             {if (p_src==p_src_post) break; goto literal;}}
        begin_unrolled_loop:
           index=((40543*((((p_src[0]<<4)^p_src[1])<<4)^p_src[2]))>>4) & 0xFFF;
           p=hash[index];
           hash[index]=s=p_src;
           offset=s-p;
           if (offset>4095 || p<p_src_first || offset==0 || PS || PS || PS)
             {literal: *p_dst++=*p_src++; control>>=1; control_bits++;}
           else
             {int dummyVal = PS || PS || PS || PS || PS || PS || PS ||
              PS || PS || PS || PS || PS || PS || s++; len=s-p_src-1;
    		  dummyVal = dummyVal;
              *p_dst++=(char)(((offset&0xF00)>>4)+(len-1)); *p_dst++=(char)(offset&0xFF);
              p_src+=len; control=(control>>1)|0x8000; control_bits++;}
        /*end_unrolled_loop:*/ if (--unroll) goto begin_unrolled_loop;
        if (control_bits==16)
          {*p_control=control&0xFF; *(p_control+1)=control>>8;
           p_control=p_dst; p_dst+=2; control=control_bits=0;}
       }
     control>>=16-control_bits;
     *p_control++=control&0xFF; *p_control++=control>>8;
     if (p_control==p_dst) p_dst-=2;
     *p_dst_len=(p_dst-p_dst_first);
     return;
     overrun: fast_copy(p_src_first,p_dst_first+FLAG_BYTES,src_len);
              *p_dst_first=FLAG_COPY; *p_dst_len=src_len+FLAG_BYTES;

    Красота в одном из методов кода одной MMO игры)

    Sigos, 16 Октября 2017

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

    0

    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
    || Bad Language.example 
    || BL V2.0 
    
    U->systemVars
    newVar->name('kek')->type('int32')->value(77)->reason('Hint')
    U->out 
    This->out( systemVars->getVarInstance->byName('kek')) 
    U->Markers 
    SetMarkerHere->name('file end')->function('return 0')->handleEvalEvent( EVENTS->EVENTSLIST->GETEVENTBYNAME('JustExec')$GET)
    || Succesfull executed! 
    // 
    // PROGRAMM$Hint$14:23 -> 77,
    //

    Если бы я делал свой яп

    Gameizeazy, 16 Октября 2017

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

    +5

    1. 1
    2. 2
    3. 3
    int hcreate(size_t nel);
    ENTRY *hsearch(ENTRY item, ACTION action);
    void hdestroy(void);

    Using these functions, only one hash table can be used at a time.
    The argument nel specifies the maximum number of entries in the table. (This maximum cannot be changed later, so choose it wisely).
    Individual hash table entries can be added, but not deleted.

    Одной хеш таблицы хватит для всех, ресайзить её или удалять элементы - нинужная фича.

    bormand, 15 Октября 2017

    Комментарии (92)
  9. Java / Говнокод #23410

    +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
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    <form>
         <input name=userid type=text>
         <input name=password type=text>
         <input name=email text=text>
         <input type=submit>
      </form>
    
    public class User {
         private String userid;
         private String password;
         private String email;
         private boolean isAdmin;
       
         //Getters & Setters
       }
    
    
    
     @RequestMapping(value = "/addUser", method = RequestMethod.POST)
      public String submit(User user) {
         
         userService.add(user);
      
         return "successPage";
      }

    Here is the typical request:

    POST /addUser

    userid=bobbytables&password=hashedpass&[email protected]


    And here is the exploit:
    POST /addUser

    userid=bobbytables&password=hashedpass&[email protected]&isAdmin=true


    https://www.owasp.org/index.php/Mass_Assignment_Cheat_Sheet

    Я вообще охуел, когда узнал что такие уязвимости существуют. А вы говорите PHP говно.

    inho, 14 Октября 2017

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

    0

    1. 1
    2. 2
    v59 = object->gen_period + 16;
    sprite->frame_id = (object->state_id >> 1) + 6 * (((BYTE4(v59) & 0x1F) + (signed int)v59) >> 5);

    Чудеса HexRays

    JonMagon, 14 Октября 2017

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