7 Ocak 2010 Perşembe

Php: Botlara karşı linkleri gizlemek

Php'nin daha çok kişi tarafından öğrenilmesi için açılan forumların ve sitelerin yan etkilerinden biride ilk iş olarak botların yaygınlaşmasıdır. Bu yazıda yer vereceğim kodlarla botlara karşı kesin bir önlem alınamaz. Zira botlara karşı kesin bir önlem henüz yoktur. Fakat bot yazanların en az %95'i düz bir mantıkla yaklaştığı için onları durdurmanıza yardımcı olacaktır.

Hepimizin (icerik.php?id=343) gibi numerik degerlerle çalışan php uygulamalara sahip siteleri vardır. Yukarıda bahsi geçen düz mantıkla çalışan grup ardışık sayıları baz aldığı için, sayıları şifreleyerek adreslemeyi değiştirebiliriz.

Php'nin bize sunduğu şifreleme metodlarından bir veya birkaçını kullanabilirsiniz. Örnek olarak base64 ile yapalım.

Link verirken;
<a href="icerik.php?id=<?php echo $id; ?>">Makale</a>

yerine

<a href="icerik.php?id=<?php echo base64_encode($id); ?>">Makale</a>

yazarak icerik.php?id=345 şeklindeki adresi icerik.php?id=MzQ1 haline getirebiliriz.

icerik.php sayfasındaki sorgu satırında da $id değerini normal değerine çevirmek için,

$id=base64_decode($_GET['id']);

satırını ekleyebiliriz.

Kullandığı dile hakim olan programcılar için pek engel teşkil etmese de, forumlarda dolaşan içerik hırsızlarına karşı küçükte olsa bir önlem olarak kullanabilirsiniz.