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

    +156

    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
    function mydqs($s="") {
        global $dellink,$origqs;
        $dellink="";
        if (!$s) $s=$_SERVER["QUERY_STRING"];
        $key="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890 &=";
        $orig="qXbn BrZ7tiJz1Hva4mx0KCY6hfV&LGAejIO=TsdgF5E3uPwkp8NScyWlRQo2MD9U";
        $i=0;
        $len=5;
        $ret="";
        $s=urldecode($s);
        while ($i<strlen($s)) {
            $i2=0;
            $retchar=$s[$i];
            while ($i2<strlen($orig)) {
                if ($s[$i]==$orig[$i2]) {
                    $pos=$i2-$i%$len;
                    if ($pos<0) $pos+=strlen($orig);
                    $retchar=$key[$pos];
                }
                $i2++;
            }
            $i++;
            $ret.=$retchar;
        }
        $pcs=explode("&",$ret);
        foreach ($pcs as $k=>$v) {
            if ($v=="") continue;
            $vs=explode("=",$v);
            $vs[1]=str_replace("'","\\'",$vs[1]);
            @eval("global \$$vs[0];\$$vs[0]='$vs[1]';");
            if (substr($vs[0],0,1)!="_") $dellink.="&$vs[0]=$vs[1]";
        }
        $origqs=$ret;
        return $ret;
    }

    что делает этот метод?

    Запостил: afwbkbc, 15 Октября 2014

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

    • я так понимаю, все значения из QueryString, который передает браузер объявляет как глобальные переменные.
      при этом, декодирует символы по словарю.. только странно это как-то.
      Ответить
    • хуйню
      Ответить
    • 1. В строке 02 объявляется использование глобальных переменных, как будто автор — старый фортранщик.
      2. В строках 31 и 33 этим глобальным переменным присваиваются значения. Результат работы функции — в глобальной переменно! Это функция?! Это функция?! Говно!
      3. В строке 04 мы видим, что значение по умолчанию берётся... из запроса. Этим должен заниматься контроллер, а не библиотечная функция.
      4. В строке 15 сравнение строк через ==. Удачной отладки, суки!
      5. Строка 30 — чудо инженерной мысли. Молодцы, засираем глобальные переменные чем-то неведомым, полученным из декодированного запроса.
      Ответить

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