Как "следить" за пользователем?

Discussion in 'PHP' started by DeL Esprit, 13 Feb 2012.

  1. DeL Esprit

    DeL Esprit New Member

    Joined:
    4 Jul 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Вот интересна мысля (навеяно "защитой" в одной браузерной игре). Стало интересно возможно ли такое (и использовать в своих целях потом). Как "проследить за игроком".
    В игру(это как пример), заходим через браузер. Игра запрещает "мульти-аккаунтинг"(два и более персонажа, например) Второй раз мы заходим на другого игрока, с этого же браузера, компьютера, но через "анонимайзер"(http-proxy).
    Можно ли вычислить, что человек один и тот же?
    "Флэш-кукисы" не подходят - ибо адресс странички имеет различные домены(у анонимайзеров свои).
    Как можно определить "нарушителя"? :confused:
     
  2. БАБА РОЗА

    Joined:
    18 May 2011
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    игра apeha.ru?)
     
  3. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    87
    Likes Received:
    22
    Reputations:
    31
    Джаваскриптовские кэш-куки работают и промеж доменов.

    Пример использования (предположим www.site.com/index.html)
    Code:
    <html>
    <head>
    <script src="http://www.tracker.com/mycookie.php"></script>
    </head>
    <body>
    <H2>YOUR ID</H2>
    <script>
    document.write(getMyCookie());
    </script>
    </body>
    </html>
    
    www.tracker.com/mycookie.php выглядит при этом так:
    PHP:
    <?php
    if(array_key_exists("HTTP_IF_MODIFIED_SINCE",$_SERVER)) {
      
    header("HTTP/1.0 304 Not Modified");
      exit();
    }
    header("Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT");
    header("Expires: Sun, 17 Jan 2038 19:14:07 GMT");
    ?>
    function getMyCookie() {
      var id = '<?php echo md5('USER:'.mt_rand()); ?>';
      var match = /ID=([a-z0-9]{32})/.exec(document.cookie);
      if (match && match[1]) {
        id = match[1];
      } else {
        document.cookie = "ID="+escape(id)+";expires=Fri, 01 Jan 2021 00:00:00 GMT; path=/;";
      }
      return id;
    }
    При первом заходе на www.site.com пользователю присвоется какой-то случайный ID. Освободиться от этого id дальше уже не так-то просто.

    * для примера я использовал в качестве идентификатора пользователя MD5-хэш, так парсить проще :eek:

    ** В боевом варианте куки хорошо бы проверять на валидность при помощи цифровой подписи или чего-то такого. Для простоты я это писать не стал.

    *** Еще рекомендую взглянуть на Panopticlick
     
    #3 scanislav, 14 Feb 2012
    Last edited: 14 Feb 2012
  4. Pash_a

    Pash_a New Member

    Joined:
    25 Sep 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    кому надо те обойдут защиту в легкую, так что строить защиту можно только для полных чайников. Всегда можно зайти с другого браузера, поменять ip.