Blogdaki yönlendirme sorunu(!)

____________________________________________________________________

Günlerdir blogumda ilginç bir sorun vardı. Blogum arama motorlarından ziyaretçi geldiğinde, ziyaretçiyi zararlı sitelere yönlendiriyordu. Hatta Google da bundan ötürü bana kızmıştı. Bu site bilgisayarınıza zarar verebilir diyor.

Kızgın Google

Kızgın Google

 

Bir şekilde blogumun dosyalarına erişilmiş ve WordPress’in kullandığı ve WordPress harici bazı dosyalara bir yabancı kod bulaşmış idi. Ayrıca .htaccess dosyaları da sürekli olarak bir yönlendirme kodu ile bozuluyordu. Ben düzeltiyorum, onlar bozuyor vs. Ama kayıtlarda da hiçbir erişim görünmüyordu.

Öncelikle PHP dosyalarına bulaşan kodu temizleyerek denediğimde dosyaların sorunsuz çalıştığını fark ettim. Sonra örnek bir dosyayı Avira Labs’a göndererek kodun olduğu PHP dosyalarının programca yakalanmasını sağladım. Kod için Avira PHP/Hack.A adını vermiş.

Aradan günler geçmesi ve pek çok şey denememe rağmen.htaccess sorunu düzelmedi. Ben de çakma bir F Tipi İş ürünü bir F Tipi Yöntem buldum. Daha iyisi mutlaka olmalı, söyleyin lütfen. 🙂 O kadar zeki değilim.

.htaccess dosyalarının farklı bir isimde kopyalarını aldım. Ve bir PHP dosyasına bunları .htaccess dosyası olarak kopyalayıp kaydedecek bir kod girdim. Sonra da Cpanel’a gidip Zamanlanmış İşler (Cron Jobs) kısmından dakikalık (Every Minute) bir iş oluşturdum. Bu işte de her dakika oluşturduğum PHP dosyasını çalıştırıyor. Böylece .htaccess dosyası kendi kendine değişse bile, benim dosyam en geç 59 saniye içinde dosyayı orijinali ile değiştiriyor ve en fazla 1 dakikalık bir sorun oluyor kullanıcılara. Tabi .htaccess dosyasının kendi kendine yarım saatte bir değiştiğini düşünürsek. Ortalama olarak ölçtüğüm sıklık bu idi.

Yazdığım PHP kodu:

 

<?php

function kopyala($dosya1,$dosya2){
$icerikx =@file_get_contents($dosya1);
$acilandosya = fopen($dosya2, “w”);
fwrite($ acilandosya , $icerikx);
fclose($ acilandosya );
if ($icerikx === FALSE) {
$durum=false;
}else $durum=true;

//Aşağıdaki kod da olmaması gereken yerlerde oluşturulan .htaccess dosyasını zararsızlaştırmak için.

//.htaccess dosyasının içini boşaltıyor yani.

return $durum;
}
function boshtaccess($dosya){
fopen($dosya,”w”);
fwrite($dosya,’ ‘);
}
kopyala(“/home/kullaniciadi/saglamhtaccessdosyasi.txt”,”/home/ kullaniciadi /public_html/.htaccess”);
boshtaccess(“/home/ kullaniciadi /public_html/wp-admin/.htaccess”);
boshtaccess(“/home/ kullaniciadi /public_html/wp-content/.htaccess”);
?>

 

Yazdığım zamanlanmış iş (cron) koduda şöyle:

/usr/bin/php -q /home/fbloginf/htacsonarici.php

htacsonarici.php yukarıdaki PHP kodunu kaydettiğim dosyanın adı.

Sorun geçici olarak çözülmüş gibi ama, hala o dosyanın kendi kendine nasıl ya da neden veya ne ile kim ile ne yöntemle değiştirildiğini çözemedim. Bu arada olay .htaccess dosyasının yazma izinleri ile ilgili değil. İzinleri ne yaparsam yapayım o dosya orada değişiyor, benim istemediğim kodlar ekleniyor. Hiçkimse yazamaz diyorum, ama sonra yerinde yeller esiyor. 😀

Daha başka bir kodlar falan denedim ettim, hatta thumbsdata.php ve thumsdatas.php diye de iki yabancı dosya buldum. .htaccesswt ve .htaccesswt1 diye de iki boş dosya vardı. Bunlar da olayla ilgili bir şeyler. Sildim, Avira’ya da bildirdim. Ama onların siteye nasıl geldiğini bulamadım. 🙁