yürümeyi öğrendi, sıra koşmaya geldi!
25Ocak2010

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

Bu yazıyı paylaş

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.

Bu yazı Hamdi Yaman tarafından yazılmış olup bugün 33, toplamda 5556 kez okunmuştur.
Bu yazıya yorum yapabilirsiniz
yollanıyor, lütfen bekleyiniz..
Facebook ile takip etTwitter ile takip etFlickr ile takip etFrienfeed ile takip et
RSS

Kategoriler

Son Yorumlar

Twitter

Google Friend Connect

Görülesi Siteler

Pcnet Dergisinden Tanıdığımız Cem kardeşimizin bloguCenk Akyıldız'ın bloguYazılarını takip ettiğim Hakan Demiray'ın BloguFatih Hayrioğlu'nun Not DefteriHensterUmut Benzer'in GünlüğüYardımsever, hayırsever şahsiyet Erhan

İstatistikler

h-yaman.com üzerinde 1,348 yazı, 6,524 yorum ve 1,431 farklı yorum yazarı bulunmaktadır.
Bu günlükte yazılan her bir harfte alın terimiz olduğu için izinsiz kopyalanmasını şiddetle kınıyoruz ve bunu yapanların iki cihan saadetinden uzak olmasını, çişini yapamamasını ve manita bulamamasını niyaz ediyoruz. Ayrıca günlüğün hamuru Wordpress ile yoğrulmuştur.