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

    +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
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    if(file_exists('./daemon.php') & isset($_GET['stop'])){
        rename('./daemon.php', './daemon.php~');
        sleep(3);
        header('Location: http://'.$_SERVER[HTTP_HOST]);
    }elseif(isset($_GET['restart'])){
        include('./lib.inc');
        @rename('./daemon.php', './daemon.php~');
        sleep(3);
        rename('./daemon.php~', './daemon.php');
        ping('daemon.php');
        sleep(3);
        header('Location: http://'.$_SERVER[HTTP_HOST]);
    }
        echo '<a href="/?restart" class="button">Start/Restart</a> ';
    if(file_exists('./daemon.php'))
        echo '<a href="/?stop" class="button">Stop</a>';
    ?><br>
    
    <div class="display">-</div>
    <script type="text/javascript"><!--
    var xd;
    setInterval(function(){
    xd&&xd.abort();
    xd = new XMLHttpRequest();
    xd.onreadystatechange = function(){
    if(xd.readyState == 4){
    document.querySelector(".display").textContent = xd.responseText;
    }
    }
    xd.open('GET', '/display.txt', true);
    xd.send();
    
    }, 3000);
    //--></script>
    
    
    daemon.php:
    
    if(date('his')-file_get_contents('./date')<2)
        exit;
        file_put_contents('./date', date('his'));
        include('./lib.inc');
        $f=fopen('./lock', 'w+');
        flock($f, LOCK_EX);
        ping('core.php');
        sleep(3);
        ping('daemon.php');
        usleep(200);
        ping('daemon.php');
        usleep(200);
        flock($f, LOCK_UN);
    
    
    core.php:
    
        ini_set('display_errors', 'on');
        error_reporting(E_ALL);
        ini_set('html_errors', 'off');
        $xreservedbasedir=__DIR__;
        $xreservedtmpbuf=str_repeat('x', 1024 * 3);
    function ob_write($buffer){
        unset($GLOBALS['xreservedtmpbuf']);
        file_put_contents($GLOBALS['xreservedbasedir'].'/display.txt', $buffer, LOCK_EX);
    }
        ob_start('ob_write');
        include('./script.php');
    
    script.php:
    
        echo date("Y.m.d h:i:s"); //любой код, который исполняет демон
    
    lib.inc:
    
    function ping($action){
        $h=$_SERVER[HTTP_HOST];
        $http=fsockopen($h, 80, $e1, $e2, 1);
    if($http){
        fwrite($http,
        'GET /'.$action.' HTTP/1.1'."\r\n".
        'Accept: */*'."\r\n".
        'Host: '.$h."\r\n\r\n"
        );
        fclose($http);
    }
    }

    демон на php? Легко!

    Запостил: loki90, 23 Сентября 2015

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

    • > $_GET['stop']
      хоть я и не секу в web совершенно, но разве GET запросы могут менять вообще что-либо?
      Ответить
      • Конечно могут. Хотя и не должны по-хорошему... Но кто им запретит?

        Пока гугл не пройдёт по гетам с побочными эффектами - разраб не перекрестится.
        Ответить
        • Так на некоторых сайтах можно голосовалки накручивать: всего-то вставить в комментарий на форуме или в бложике тег <img> со ссылкой... не на картинку, а на GET-запрос для голосования на нужном сайте. «Проголосуют» и все реальные читатели форума, и Гугл, и Яндекс, и китайские боты.
          Ответить
          • На гк голосование же тоже гетом? Или я туплю (пишу с айпада, проверить нечем)?
            Ответить
            • Request URL:http://govnokod.ru/ratings/comment/298881/on?isAjax=true
              Request Method:GET
              Ответить
              • Жаль, принимается только от авторизованных...

                Говорят, несколько лет назад могли голосовать и гости, и Гугл, и Яндекс, только сила голоса у них была 0,1. Но при большом количестве голосующих это не такое большое ограничение...
                Ответить
                • и правильно что убрали. пусть минусаторы тоже учатся писать нормальные скрипты. Говнокод образовательный
                  Ответить
                • >Говорят, несколько лет назад могли голосовать и гости
                  >несколько лет назад
                  2010. Как летит время.

                  А вы разве сами не помните? idшничек ведь как раз из той эпохи

                  >только сила голоса у них была 0,1
                  0.2 кажись
                  Ответить
                  • > idшничек ведь как раз из той эпохи

                    Да, из этой. Однако, последний ГК с дробным рейтингом — http://govnokod.ru/3058 — появился 20 апреля 2010. Я сюда пришёл как раз... в апреле 2010-го (совпадение?), но от имени гостя тогда не писал (даже не знаю, почему не хотелось пользоваться такой свободой), а более подробное наблюдение за сайтом начал позже.

                    > 0.2 кажись

                    Больше похоже на правду. Нечётную дробную часть мне не удалось заметить.

                    P.S. Обалдеть, за время моего присутствия наложено 15,7 кГК. Как летит время...
                    Ответить
                    • P.P.S. Выходит, что суммарная активность на сайте ≈ 1,5 кГК/год. Тогда выходит, что до 2010-го года сайт существовал примерно ещё года два, т. е. открылся в 2008-м. Проверим: #1 наложен 22 ноября 2008.
                      Ответить
                      • Отсюда можно сделать вывод, что скорость появления говна константа.
                        Ответить
                        • закон сохранения говна
                          Ответить
                          • Скорее закон сохранения хуевых программистов
                            Ответить
                            • На программистов не работает естественный отбор. Поэтому количество программистов растет. Но скорость накопления говна не меняется. То возможно % говнокодеров уменьшается. Возможно они уходят на другие позиции (менеджеров и прочих гуманитариев)
                              Ответить
                      • Опечатка? 2,5 кГК/год
                        1,5 - это ближе к пользователям (1.9 кП/год)
                        http://govnokod.ru/17584#comment264099
                        http://govnokod.ru/16523#comment243879
                        Ответить
      • google: XSRF или CSRF.

        https://ru.wikipedia.org/wiki/Межсайтовая_подделка_запроса

        Если бы это было твёрдо запрещено, в мире было бы чуть меньше слёз...
        Ответить
        • Но это вовсе не главная проблема голосовалки.
          Ответить
          • Так ведь CSRF не только бесполезные голосовалки подвержены...
            Ответить
    • Демон, вобщем-то должен закрывать вход / выход... а тут вообще этим даже и не пахнет. В каком смысле это демон?
      Ответить
    • vanished
      Ответить

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