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

    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
    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
    // CVE-2012-5692
    
    /* 4015. */        static public function get($name) 
    /* 4016. */        { 
    /* 4017. */            // Check internal data first 
    /* 4018. */            if ( isset( self::$_cookiesSet[ $name ] ) ) 
    /* 4019. */            { 
    /* 4020. */                return self::$_cookiesSet[ $name ]; 
    /* 4021. */            } 
    /* 4022. */            else if ( isset( $_COOKIE[ipsRegistry::$settings['cookie_id'].$name] ) ) 
    /* 4023. */            { 
    /* 4024. */                $_value = $_COOKIE[ ipsRegistry::$settings['cookie_id'].$name ]; 
    /* 4025. */    
    /* 4026. */                if ( substr( $_value, 0, 2 ) == 'a:' ) 
    /* 4027. */                { 
    /* 4028. */                    return unserialize( stripslashes( urldecode( $_value ) ) ); 
    /* 4029. */                } 
    
    /*  
    The vulnerability is caused due to this method unserialize user input passed through cookies without a proper 
    sanitization. The only one check is done at line 4026,  where is controlled that the serialized string starts 
    with 'a:',  but this is not  sufficient to prevent a  "PHP Object Injection"  because an attacker may send  a 
    serialized string which represents an array of objects.  This can be  exploited to execute arbitrary PHP code 
    via the  "__destruct()" method of the  "dbMain" class,  which calls the "writeDebugLog" method to write debug 
    info into a file.  PHP code may  be injected  only through the  $_SERVER['QUERY_STRING']  variable,  for this 
    reason successful exploitation of this vulnerability requires short_open_tag to be enabled. 
    */

    Если вы думаете, что самое плохое, что ждёт ваш уютный сайт на «PHP» — это Роберт-брось-таблицу, то вы глубоко ошибаетесь.

    CSRF verification passed.

    gost, 23 Сентября 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $data = new stdClass();
      $data->receivers_list = [];
      $data->receivers_list[0] = new stdClass();
      $data->receivers_list[0]->address = $user_wallet;
      $data->receivers_list[0]->amount = $amount;

    Кусок кода, от проекта, который мне теперь надо поддерживать.

    spacel0rd, 18 Сентября 2018

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

    −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
    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
    Name: 
    <input type="text" name=
                                                             "name" 
    value="<?php echo $name;?>">
    
    E-mail: <
    
                         input type="text" 
    name="email" value="<?php 
    echo $email;?>">
    
    Website: <input type="text" name="website" value="
    <?php echo $website;?>"
    
                                                                                  >
    
    Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
    
    Gender:
    <input type="radio" name="gender"
    <
    ?
    php 
    
    
    if (isset($gender) && $gender=="female") echo "checked";
    
    ?>            value="female">Female
    
    <input type="radio" name="gender"
    <?php if (isset($gender) && $gender=="male") echo "checked";?>
    value="male">
    
                  Male
    
    <input type="radio" name="gender"
    
    <?php if (isset($gender) && $gender=="other") echo "checked";?>value="other">Other

    PHP говно

    Ksyrx, 16 Сентября 2018

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

    0

    1. 1
    2. 2
    3. 3
    <?php
    echo implode ("<br>", file("govnokod.php"));
    ?>

    Угадайте как называется это!

    Arduino, 10 Сентября 2018

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

    −1

    1. 1
    define('DIR', pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_DIRNAME) . '/');

    phpMASTER666, 30 Августа 2018

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

    −6

    1. 1
    2. 2
    $haystack
    $needle

    Что за тупые названия аргументов?

    guestinxo, 30 Августа 2018

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

    −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
    /**
     * Class Iin
     * @package App\Classes\Support
     *
     * Класс проверки иин для казахстана
     *
     * ИИН содержит 12 цифр из которых
     * первые 6 цифр - дата рождения [гг-мм-дд]
     * 7-я цифра - пол и век (нечетные цифры - муж, четные женский)
     *      1,2 - 19 век
     *      3,4 - 20 век
     *      5,6 - 21 век
     *      7,8,9,0 - зарезирвированны на будущее
     * 8 - 11 регистрационный гос номер
     * и 12 - контрольный разряд
     *
     * Иин проверяесться по контрольной сумме через две последовательности
     * Сперва каждая цифра иин, кроме последней умножается на цифру из 1-й последовательности и суммируется
     * Результат делиться на 11 и если он от 0 до 9 и соотвествует 12-й цифре иин то иин верен,
     * если результат 0 - иин не верен, если результат 10 - то проверка продолжается по второй последовательности
     * Если результат проверки по всторой последовательности от 1 до 9 и равен 12-й цифре иин - то иин верен иначе проверка
     * заканчивается и иин не верный.
     *
     * UPD - Хьюстон у нас проблемы - некоторые безответственные работники цонов делают неверные иин с 7,8 и 9 цифрой для 22 и 23 века.
     * В итоге люди для системы как из 23 века а сами из 21 или 20 - так что пока не настал 22 и 23 век их разряды будут для 20 века.
     * Не люблю костыли но работники цонов такие работники - а менеджеры и клиенты недовольны, так что придеться
     *

    https://habr.com/company/ua-hosting/blog/420091/

    guestinxo, 29 Августа 2018

    Комментарии (1)
  8. PHP / Говнокод #24648

    −1

    1. 1
    2. 2
    $query  = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
    $query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";

    Я не знаю, к какой секции следует отнести этот высер:
    1) Автор решил учить испанский. Таблицы имеют имена `aparatos`, `abonandos`, etc
    2) Само собой, SQL injection
    3) Порнография при работе с датой

    kai, 23 Августа 2018

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

    −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
    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
    private static function preparePostProperty(&$data, $propName = [], $type = 'float'){
            if(!in_array($type, ['float', 'integer', 'string']))
                return;
            if(is_array($data) && !empty($propName)){
                $key = '$data["' . implode('"]["', $propName) . '"]';
    
                @eval("if(isset($key)) $key = ($type)$key;");
            }
        }
    
    
        public static function preparePost($data, $documentsObjects = []){
            if(is_array($data)){
                self::preparePostProperty($data, ['general', 'fromMtender', 'lotDetails', 'lotAmount']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountBrutto']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountNetto']);
                self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountPrepayment']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGuarantee']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGE']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountWithdraw']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountMaxWithdraw']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'transferDuration']);
                self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'nonPaymentMax']);
                self::preparePostProperty($data, ['general', 'additionalData', 'executionShouldStart']);
                self::preparePostProperty($data, ['general', 'additionalData', 'executionDuration']);
    
                foreach ($data['subject'] as $k => $subjects){
                    //data[subject][0][fromMtender][itemQuantity]
                    self::preparePostProperty($data, ['subject', $k, 'fromMtender', 'itemQuantity']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withoutVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withoutVAT']);
                    self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withVAT']);
    
                    foreach ($subjects['additionalData']['budget'] as $kb => $budgets){
                        self::preparePostProperty($data, ['subject', $k, 'additionalData', 'budget', $kb, 'budgetAmount']);
                    }
                }
    
                self::preparePostProperty($data, ['ca', 'additionalData', 'caPerson', 'caPersonCode']);
    
                self::preparePostProperty($data, ['eo', 'fromMtender', 'eoCode']);
                self::preparePostProperty($data, ['eo', 'additionalData', 'eoLicenses', 'eoValidityDuration']);
                self::preparePostProperty($data, ['eo', 'additionalData', 'eoPerson', 'eoPersonCode']);
    
                self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercent']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercentMax']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercent']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercentMax']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'maxPenalty']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'maxDelay']);
                self::preparePostProperty($data, ['otherConditions', 'sla', 'warrantyPeriod']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnSigned']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnFM']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnTermination']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondOnTermination']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'submitClaimsMax']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondClaimsMax']);
                self::preparePostProperty($data, ['otherConditions', 'timeline', 'deliverOnClaims']);
            }
    
            self::appendPostDocuments($data, $documentsObjects);
    
            return $data;
        }

    ЧТОЕТА?

    dd3d, 20 Августа 2018

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Я знаю что многие из вас любят лошадок.
    Будьте, пожалуйста, осторожнее:
    
    https://en.wikipedia.org/wiki/Enumclaw_horse_sex_case
    
    https://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%BD%D1%8C%D1%8F%D0%BD,_%D0%9A%D0%B5%D0%BD%D0%BD%D0%B5%D1%82

    roskomgovno, 09 Августа 2018

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