PHP Dersleri

PHP ile Mail Adresini Gizleme (Kaynaktan)

Sürekli olarak kullanmış olduğumuz en az bir mail adresimiz vardır. Bu adresinize; bankalardan, kullanmış olduğunuz hizmetlerden, online işlemlerden, iş görüşmelerinden ve bir çok alanda mail trafiğiniz vardır. Kişisel olarak bir düzende tutmuş olduğunuz bu mail adresini bir internet sitesinde paylaştığınızda –ki çok masum bir hareketmiş gibi görünüyor- mail botları tarafından sitenin taranmasıyla adresiniz ele geçirilecektir. Buda spam reklamlara maruz kalacağınızın bir habercisidir.

Mail botları tarafından elde edilen mail adresinize; bahis sitelerinden, +18 ürün satan sitelere kadar bir çok yerde reklam maili almaya başlayacaksınız. Bu gibi durumların önüne geçmek için aktif olarak kullanmış olduğunuz mail adresini her yerde açık açık paylaşmamak olacaktır.

Paylaşım yapacağınız mail adresi kendi yazılımınız yada intenet sitenizde ise birkaç kod düzenlemesi ile yazmış olduğunuz adresin şifrelenmesini sağlayabilirsiniz.

PHP hide_email() ile Mail Adreslerini Gizleme

Hide_email() fonksiyonu, belirtmiş olduğunuz mail adresini javascript kodlarına çevirerek botların ulaşmasını engelleyecektir. Böylelikle aktif olarak ekranda görünen, tıklatıldığında mailto ile işlem yapan fakat kaynak kodlarında yer almayan bir mail adresini web sitenizde yayınlamış olacaksınız. Bu koruma ile mail adresinin botlar tarfından alınmasını engellemiş olup, spam reklam maillerinden kurtulacaksınız.

function hide_email($email)
{ $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
  $key = str_shuffle($character_set); $cipher_text = ''; $id = 'e'.rand(1,999999999);
  for ($i=0;$i<strlen($email);$i+=1) $cipher_text.= $key[strpos($character_set,$email[$i])];
  $script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";';
  $script.= 'for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));';
  $script.= 'document.getElementById("'.$id.'").innerHTML="<a href=\\"mailto:"+d+"\\">"+d+"</a>"';
  $script = "eval(\"".str_replace(array("\\",'"'),array("\\\\",'\"'), $script)."\")"; 
  $script = '<script type="text/javascript">/*<![CDATA[*/'.$script.'/*]]>*/</script>';
  return '<span id="'.$id.'">[javascript protected email address]</span>'.$script;
}

Yukarıda yer alan hide_email() fonksiyonu ile mail adresinizi javascript kodlarıyla gizleyebilirsiniz. Bu fonksiyon tek parametre almaktadır. Fonksiyonu kullanıp mail adresinizi yazmanız yeterli olacaktır.

<?php echo hide_email('test@test.com'); ?>

Yukarıda yer aldığı gibi hide_email() fonksiyonunu kullanabilirsiniz. Fonksiyona mail adresinizi girip sayfayı çalıştırdığınızda kaynak kod aşağıda yer aldığı gibi olacaktır.

<span id="e871128685">[javascript protected email address]</span><script type="text/javascript">/*<![CDATA[*/eval("var a=\"W1-Jq@Z68XbC7eciyhBTaA_V0jwtNv+SgFYrpDR2xIUonmksK4.Quf395GldLOEMHPz\";var b=a.split(\"\").sort().join(\"\");var c=\"LmdLeLmdL-o9f\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e871128685\").innerHTML=\"<a href=\\\"mailto:\"+d+\"\\\">\"+d+\"</a>\"")/*]]>*/</script>

Görmüş olduğunuz gibi kaynak kodda hiçbir şekilde mail adresinizden bahsedilmemektedir. Böylelikle mail botlarının sayfanızda görünen mail adresine kaynak koddan erişimini engellemiş oluyorsunuz. Mail adresini gizlemek için kullanılan sistem http://www.maurits.vdschee.nl/php_hide_email/ sitesi tarafından sağlanmaktadır. Detaylı bilgi için ziyaret edebilirsiniz.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir