Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Ocultando e-mails com PHP e JavaScript

Colaboração: Glaydson Lima

Data de Publicação: 06 de Janeiro de 2005

Um dos grandes problemas na publicação de e-mails em sites, fóruns e lista de discussão, é a possibilidade de programas robôs de spammers capturarem este e-mails. E aí, uma vez capturados, os e-mail publicados tendem a receber cada vez mais lixos eletrônicos. Em muitos fóruns ficou comum a modificação da escrita do e-mail para formas similares. Por exemplo:

<fulano (a) provedor com br> torna-se fulano [!arroba!] provedor [ponto] com [ponto] br

Os programas dos spammers buscam nas páginas informações com o símbolo arroba e montam os e-mails.

Para segurança das pessoas que postam mensagens, existe a possibilidade de usar uma combinação de PHP e Java Script que camuflam os e-mails. Para este modelo, é necessário ter a biblioteca GD do PHP instalada.

Iremos desenvolver com 3 arquivos:

inc_vars.php

Arquivo que contém a codificação dos caracteres arroba e ponto. Esta codificação não pode conter sequência de caracteres comuns e deve variar sempre que possível.

  <?php
         # Define as constantes de substituição do arroba e ponto dos e-mails
         define("CONS_ARROBA","_arroba_");
         define("CONS_PONTO","_pt_");
  ?>

imagemEmail.php

Criará uma imagem com o e-mail codificado. Esta imagem será normalmente legível pelos usuários.

  <?php
  
  require("inc_vars.php");
  
  // define tamanho da imagem de acordo com o e-mail
  $largura = strlen($_GET["email"])*6;
  
  // cria uma imagem
  $im = imagecreate($largura, 13);
  
  // Define cor de fundo e cor do texto
  $bg = imagecolorallocate($im, 255, 255, 255);
  $textcolor = imagecolorallocate($im, 39, 104, 124);
  
  // Escreve a string do e-mail
  imagestring($im, 3, 0, 0, str_replace(CONS_PONTO,".",str_replace(CONS_ARROBA,"@",$_GET["email"])), $textcolor);
  
  // Retorna a imagem
  header("Content-type: image/png");
  imagepng($im);
  ?>
  
  3.arquivo.php   Será o arquivo principal, contendo a chamada para o script de imagem e o JavaScript que montará o  mailto  correto.
  
  <?php
         require("inc_vars.php");
  
          function ocultaEmail($PEmail) {
                 $emailCodificado = str_replace("@",CONS_ARROBA,$PEmail);
                 $emailCodificado = str_replace(".",CONS_PONTO,$emailCodificado);
                 return "<a href=\"#\" onClick=\"converteMailTo(this,'$emailCodificado')\"><img border=\"0\" src=\"imagemEmail.php?email=" . $emailCodificado ."\"></a>";
         }
  
  ?>
  <html>
  <head>
         <script language="JavaScript">
                 function converteMailTo(PObj,PEmail) {
                         PEmail = String(PEmail).replace(new RegExp("<? echo CONS_ARROBA; ?>","gi"),"@");
                         PEmail = String(PEmail).replace(new RegExp("<? echo CONS_PONTO; ?>","gi"),".");
                         PObj.href = "mailto:" + PEmail;
                 }
         </script>
  </head>
  <body>
         <p>
         <? echo ocultaEmail("fulano@provedor.com.br");?>
         </p>
  </body>
  </html>

Veja um exemplo do resultado desta combinação.

Veja a relação completa dos artigos de Glaydson Lima

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1104 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Guia Manga Universo