Spamlar E-Posta Adresimizi Nasıl Buluyor?

Yıllar geçmesine ve yeni internet teknolojileri çıkmasına karşın spamlar  eskiye göre daha hızlı ve şiddetli şekilde e-posta adresimizdeki yerini alıyorlar.  Görüşümdür ki bundan sonra da yerini alacak. Hatta mobil cihazlara da yavaş yavaş girmişken tam gaz devam edecek. Smart tv ve smart olan her alete yerleşecekler yani hayatımızın içindeki yerlerini sonra da almaya devam edecekler. Peki e-posta adresimizi nasıl buluyorlar? İşte bu soruya cevabımız varsa spamlardan biraz da olsa arınmış olacağız.

Mail Listeleri

Spamların en eski ve en eskimeyen yöntemidir. “Bu mesajı 10 kişiye gönderirsen sevdiğin kız senin olacak” gibi başlıklarla gelen e-postayı bizlerin cevaplamasıyla toplanan e-posta adreslerinin bulunduğu listelerdir. İşleyişi ise oldukça basittir. Hazırlayıp 10 kişiye gönderilen mesaj daha sonra “forward” ile 10’ar kişiye daha gidiyor. Bu halka böyle devam ederken nihayetinde bütün adresler bu mesajı gönderen ilk kişide toplanıyor. Yani böyle mesajları görmemezlikten gelmek gerekiyor.

Abonelik Sistemleri

İnternet sayfalarında yer alan “yeniliklerden haberdar olun” bölümlerinin sonraki tuzaklarıdır spam. Tabi ki bütün siteler için geçerli değil ancak bilmediğimiz  sitelere abone olmak çok da mantıklı değil. Ayrıca e-posta adresimize gelen “abonemiz olun” bağlantıları da aynı sisteme dahildir.

Brute Force

Bu teknik biraz tahmine dayalı ancak başarı yüzdesi çok yüksek. Bir isim ele alınarak bu ismin değişik kombinasyonlarda ve e-posta hizmetlerinde bulunan adres listeleri çıkarılıyor. Tabi bunu yapmak çok uzun zaman alacağı için yazılım desteği almak gerekiyor. Hatta bir zamanlar hack yöntemi olarak da kullanılıyordu ancak şu anda e-posta hizmetleri daha fazla güvenlik donanımına sahip oldukları için rahatız. Brute Force tekniğine örnek verecek olursak:

ayşe@hotmail.com
ayşe1@hotmail.com
ayşe001@hotmail.com
ayşe1@gmail.com

Web Crawler Bot

Bu isimle bilinen teknikte internet sayfalarından bilgi çekiliyor. Bot, belli parametreleri içinde barından ve komut veren bir programcıktır. Bir siteye yönlendirilen botlar bu site üzerindeki e-posta adreslerini toplamakla mükellef. Birçok sitede adres[at]adres.com şeklinde yazılan e-posta adreslerini görmüşüzdür. Bu şekilde yazılmasının sebebi @ işareti olan kısımları botların algılayıp adresi listeye dahil etmesinin önüne geçmektir. Yani e-posta adresimizi açık açık paylaşmamak gerekiyor.

E-Posta Veritabanları

Bu sistem olayın biraz mide bulandırıcı yönü. İsteyerek üye olduğumuz birçok site güzel paralar karşılığında kullanıcı bilgilerini üçüncü kişilere satıyor. Sadece e-posta adresi değil, telefon numarası gibi bilgileri de satıyorlar. Bunun için alınacak önlem maalesef yok. Kullanıcı sözleşmelerinde zaten bu madde yer alıyor. Bugün Facebook’un bile direkt bilgileri vermese de reklam için bilgilerimizi kullandığını göz önünde bulundurmak lazım.

WordPress:Spam Yorumları Otomatik Olarak Çöp Kutusuna Gönderme

Bloglarımızda en sık karşılaştığımız sorunlardan birisidir spam yorumlar. Ancak WordPress’de bunun önüne geçmek için akismet tarzı eklentiler kullanılıyor. Bu tür eklentiler yorumları filtreleyip yorumların içindeki kelimelere göre içlerinden spam olanları çekip alıyor. Şimdi değineceğimiz konu ise bu yorumlar geldiğinde akismete veya diğer filtreleme eklentilerine devretmek yerine WordPress’in yeni özelliği “çöp” kutusuna direkt göndermekle ilgili olacak. Çöp kutusuna gönderme işin içine girince ekstra bir eklenti kurmaya da gerek kalmıyor. Çalışma mantığı olarak da belli kelimelerin bulunduğu bir havuzumuz var. Gelen yorumlar bu havuzdaki kelime veya kelime grupları ile karşılaştırılıyor. Eğer havuzdaki kelimelerden birisi kullanılmışsa hemen yorum çöpe atılıyor. Şimdi kodumuzu görelim ve ondan sonra birkaç noktaya daha değinelim.

Kodu temamızın foksiyon dosyası olan functions.php dosyasına ekliyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function in_comment_post_like($string, $array) {
	foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
	return false;
}
function drop_bad_comments() {
	if (!empty($_POST['comment'])) {
		$post_comment_content = $_POST['comment'];
		$lower_case_comment = strtolower($_POST['comment']);
		$bad_comment_content = array(
			'viagra',
			'hydrocodone',
			'hair loss',
			'[url=http',
			'[link=http',
			'xanax',
			'tramadol',
			'russian girls',
			'russian brides',
			'lorazepam',
			'adderall',
			'dexadrine',
			'no prescription',
			'oxycontin',
			'without a prescription',
			'sex pics',
			'family incest',
			'online casinos',
			'online dating',
			'cialis',
			'best forex',
			'amoxicillin'
		);
		if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
			$comment_box_text = wordwrap(trim($post_comment_content), 80, "\n  ", true);
			$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
			fwrite($txtdrop, "  --------------\n  [COMMENT] = " . $post_comment_content . "\n  --------------\n");
			fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n");
			fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n");
			fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "\n");
			fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n");
			fwrite($txtdrop, '--------------**********------------------'."\n");
			header("HTTP/1.1 406 Not Acceptable");
			header("Status: 406 Not Acceptable");
			header("Connection: Close");
			wp_die( __('bang bang.') );
		}
	}
}
add_action('init', 'drop_bad_comments');

Fonksiyonda kelime havuzumuz 10. satırdaki ilaç markası ile başlıyor (direkt ilaç ismini yazmama sebebim Google aramalarında o ilaçla ilgili aramalarda blogumun listelenecek olması ve gerçekten bunu hiçbirimiz istemeyiz). Eklemek istediğimiz kelime veya kelime grupları varsa onları da aynı havuzdaki biçimde yani ‘kelime’; şeklinde araya sıkıştırmak yeterli olacaktır 🙂 Bu fonksiyonu ayrıca istemediğimiz bir yazıya gelen yorumları elemek için de kullanabiliriz. Mesela blogumda çok önceleri yazdığım msn şifresi ile ilgili bir yazı var. Bunu tamamen eğlenci amaçlı yazmıştım anca sonraları google aramalarında ilk sıralarda çıktı. Ve ardından hergün bu konuyla ilgili onlarca yorum silmek zorunda kaldım. Ben buna çözüm olarak ‘msn şifre’ yazacağım havuza. Çünkü bu yazıya gelen yorumların çoğunluğu bu kelimeleri içeriyor. Otomatik olarak silinmiş olacak yorumlar. Ayrıca diğer küfürlü yorumlar için de kullanabileceğiz.

Yazının orjinal hali WpRecies‘de mevcuttur.

WordPress:Yorum Formunda HTML Etiket Kullanımını Engelleme

Blogların en can alıcı noktalarından birisi yorumlardır kuşkusuz. WordPress bloglarında da diğer bloglar gibi yorumlar mevcuttur. Hatta gelişmiş özellikler de sunabilir. Bunlardan birisi HTML etiketlerinin kullanılmasıdır. HTML etiketleri de yorum içinde link verme, resim gösterme, kalın veya italik yazı yazma gibi bazı özellikler sunuyor. Ancak bir durum da var ki bu etiketler açık olduğu taktirde spam mesajların da vazgeçilmezi durumuna geliyor. Spam mesajlar için her ne kadar eklentiler bulunsa da tam istenilen sonuçlara ulaşılamıyor. Örneğin Akismet’de bazı spam olmayan yorumlar da spam olarak alglanıyor ve silme işleminde kurunun yanında yaş da yanar misali siliniyorlar. HTML etiketleri kaldırdığımız taktirde bunların tamamen olmasa da bir miktar önüne geçmiş oluyoruz.

HTML etiketlerini kaldırmak için temamızın functions.php dosyasına aşağıdaki kodu dahil ediyoruz:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {
// convert everything in a comment to display literally
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {
// Put the single quotes back in
$comment_to_display = str_replace( ''', "'", $comment_to_display );
return $comment_to_display;

Hepsi bu kadar. Yazının orjinali de burada yer almaktadır.

Twitter Spam Bulucu:Twerp Scan

Geçtiğimiz günlerde Twitter‘ın da spam içerdiğinden şu yazımda bahsetmiştim ve dert yanmıştım. Yazımda kendi keşfettiğim yollardan spam kişilerin nasıl anlaşılacağını ve bunları nasıl engelleyeceğimizden az da olsa bahsetmiştim. Fakat öğrendim ki aslında kendimizi bu kadar germenin, bu kadar kasmanın bir anlamı yokmuş. Çok daha basit bir yoldan hatta bir servisten bu spamlar algılanıyor ve basitçe yok edilebiliniyor.

Continue reading

Spam Mesajlar için iki Eklenti

Eğer bir siteniz varsa daha doğrusu yorumlara veya ziyaretçilerinizin fikirlerine açık bir sistem kullanıyorsanız spam mesajlarla mutlaka başınız dertte demektir. Eğer dertte değilse de yakın bir zamanda bu konuda muzdarip olacağınızı garanti edebilirim. WordPress kullanıyorum alt yapı olarak blogumda ve son altı aydır bu spam mesajlardan o kadar dertliydim ki anlatmam mümkün değil. Yorumlardan sonra e-postaya da dadanınca içinden çıkılmaz bir hal aldı. Sonrasında da arayışlar içine girmeme sebep oldu.

Continue reading