jcalebe 0 Denunciar post Postado Abril 12, 2011 Olá! Criei um sistema que "cumprimenta" o usuário, e se ele vier de algum site de buscas, pega a searchstring e o nome do site e escreve na tela. O problema é que não sei se esse script é "seguro" contra injections, e se ele comprometeria de alguma forma a segurança do site. Vejam: $_SERVER['HTTP_REFERER'] = 'http://www.google.com.br/#hl=pt-BR&biw=1024&bih=675&q=bem+vindo&aq=f&aqi='; //Lista dos motores conhecidos $motores = array('Google','Yahoo', 'Bing', 'Ask'); //Lista do nome das variáveis vindas da URL $rdmotor = array('q','p','q','q'); if (isset ($_SERVER['HTTP_REFERER']) ){ $ref = parse_url($_SERVER['HTTP_REFERER']); // var_dump($ref); $site = ''; foreach ($motores as $ty=>$motor){ if (preg_match("/$motor/i", $ref['host'])){ $site = ' do '.$motor; $tipo = $rdmotor[$ty]; break; } } $qry = explode("$tipo=", $ref['fragment']); if (isset($qry[1])){ $qry = explode('&', $qry[1]); $qry = '! Você estava procurando por <span style="font-weight:bold">"'.urldecode($qry[0]).'"</span> e chegou até aqui. Continue navegando a vontade!'; }else $qry = '!'; // var_dump($qry); if(!empty ($site)) echo 'Olá visitante'.$site.$qry; } /* Nesse caso, retornará: Olá visitante do Google! Você estava procurando por "bem vindo" e chegou até aqui. Continue navegando a vontade! */ Outra: Existe algum script mais rápido/menor/mais eficiente que faça isso? Abraços ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Abril 12, 2011 Não há risco de injection a não ser que você vá armazenar o resultado disso no banco de dados. Agora, devo alertá-lo de que esse tipo de script não e uma boa idéia. O visitante se sente invadido, fica parecendo que ficam espionando o que ele anda procurando no Google. Os mesmo vale para scripts que mostram o nome e a versão do navegador, o sistema operacional, a geolocalização do usuário por base no IP, etc., alguns sites chegam até a coletar o histórico do navegador. É o tipo de informação que é extremamente útil para o planejamento de campanhas publicitárias, etc., mas são informações que devem ser armazenadas para uso futuro e o único lugar que você deve dizer que as coleta e possui é na Política de Privacidade, por uma questão ética. O seu intuíto é ser simpático, mas acho que o efeito é inverso. Compartilhar este post Link para o post Compartilhar em outros sites
jcalebe 0 Denunciar post Postado Abril 12, 2011 Não tinha me atentado para isso ainda! Para nós que conhecemos o funcionamento é uma coisa normal, mas para quem não conhece fica mesmo parecendo uma invasão. Vou arquivar esse código aqui e deixar esta idéia para lá. Valeu! :joia: Compartilhar este post Link para o post Compartilhar em outros sites