Robot Dışlama Standardı (Robots Exclusion Standard), kısaca REP web dünyasında yaklaşık 25 yıldır varlığını sürdürmekte. Ancak bu standardın yanlış kullanılması ile oluşan güvenlik riskleri hala tam olarak bilinmiyor.
Biz ise bu yazıda robots.txt dosyası nedir, ne işe yarar, nasıl olmalıdır ve hangi mantıkla çalışır, robots.txt dosyası oluşturma süreci, robots.txt kullanımı ile ortaya çıkabilecek güvenlik riski ve bu güvenlik risklerini azaltma yöntemlerini detaylı olarak göreceğiz.
İlk olarak robots.txt dosyası nedir, nasıl bir altyapısı var bunu öğrenelim.
Robot Dışlama Standardı ve Robots.txt Nedir?
Robots.txt dosyası, web siteleri tarayan iyi niyetli robotlara sitenin yapısı hakkında bilgiler ve talimatlar veren txt uzantılı normal bir dosyadır. İnsanlar tarafından da kolaylıkla erişilebilir ve hızlı bir şekilde okunup anlaşılabilir.
Robots.txt dosyası ile xml veya html formatındaki site haritası (sitemap) dosyasının nerede olduğu, sitenin hangi hızda taranabileceği ve web sayfalarının yada dosya ve klasörlerin taranıp taranamayacağı gibi arama motoru robotları başta olmak üzere iyi niyetli tarayıcıları yönlendiren talimatlar içerir.
İyi niyetli robotlar diyorum çünkü bu talimatlar, botların tercihlerine ve saygılarına bağlı olan bir şeydir.
Arama motoru robotları web sayfasını taramadan önce robots.txt dosyasının sunucudaki varlığını kontrol ederler. Eğer robots.txt dosyası varsa içeriğini kontrol eder ve yönergelere saygı gösterirler.
Robots.txt dosyası SEO çalışmaları ile uğraşan kişilerin ilk öğrendiği konulardan biri. Kolay kullanılır ve güçlü etkileri bulunur. Tabiiki doğru kullanılırsa…
Malesef riskli ve hatalı sonuçlar üreten bir yapılandırma sonucunda siteye oldukça zarar verebilir. Birçok kişi yanlış kullanabiliyor ve site performanslarını olumsuz yönde etkiliyorlar.
Web sitesini tarayan bir bot proğramına, web sayfasını veya dosya ve klasörleri taramamasını belirtmek için Robot Dışlama Standardı (REP)′in tanımladığı ″Disallow″ ifadesini kullanmak gerekir. Disallow talimatıyla robotun sayfaları ve klasörleri taramasının istenmediği belirtilir.
Robots.txt Dosyası Nasıl Oluşturulur?
Dediğimiz gibi robots.txt dosyaları basit bir metin dosyasıdır. Bilgisayarınızda bulunan en basit düz metin düzenleyisi veya herhangi bir notepad proğramı ile düzenleyebilirsiniz.
Farklı formatta içerikler ekleyen Word proğramları yerine sade metin düzenleyicileri kullanmanız daha uygundur.
Sitenizde robots.txt dosyası varmı yokmu kontrol edin. Sitenizin ana klasöründe, ″alanadiniz.com/robots.txt″ yolu üzerinde bulunurlar.
Yoksa sorun değil, şimdi basit bir şekilde oluşturacağız. Google Webmaster Destek sayfası üzerinden robots.txt dosyası ile ilgili detaylı talimatları bulabilirsiniz.
Robots.txt dosyası oluşturmak için temel birkaç komutun ne anlama geldiğini görelim.
- User-agent: Komutların hangi bot için uygulanacağını belirtir. (* = Google, Yahoo, Bing, Yandex dahil her bot için uygula, Googlebot = Google botları için uygula)
- Disallow: Taranmasına izin verilmeyen URL yolu.
- Allow: Taranmasına izin verilen URL yolu
- Sitemap: Site haritası URL yolu.
Sitenizin her tarafının taranmasını istiyorsanız robots.txt dosyası aşağıdaki gibi olmalı.
User-agent: *
Disallow:
User-agent komutuna girilen yıldız işareti (*) ile google, yandex, bing, yahoo gibi bütün arama motoru botlarına, bu ifadenin altındaki komutları uygulaması istenir. ″Disallow″ komutunun boş bırakılmasıyla ‘taranmasını istemediğiniz bir dosya yoktur, her yeri tara’ demiş olursunuz.
İnternette kısa bir aramayla da otomatik robots.txt dosyası oluşturma proğramlarını bulabilirsiniz.
Neden Bazı Sayfaları Taramaya Kapatıyoruz?
Robots.txt dosyası kullanarak taramaya kapatılan sayfa, indexlenmiş olsa bile büyük ihtimal arama sonuçlarında yer almayacaktır.
Sitedeki belirli bölümleri indexlemeye kapatmak, robots.txt dosyasının en önemli işlevlerinden biri.
Neden indexlemeyi kapatmaya gerek duyalım? Kısa bir cevap verelim. Ziyaretçinin her sayfayı görmesine gerek yok.
Örnek verelim. WordPress altyapısında çalışan bir siteniz varsa, kullanılan her bir eklenti birçok alt klasör oluşturur. Ya da wordpress sürümünü gösteren readme.html sayfası.
Siteniz için önemli klasörler olabilirler ancak bunların arama sonuçlarında görünmesine gerek yok. Bu klasörlerin arama motorlarında dizine eklenmesini engellemek istiyorsanız robots.txt dosyanız aşağıdaki gibi olmalı.
User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /readme.html
WordPress siteleri için genel itibarıyla bir robots.txt dosyası içeriği aşağıdaki gibi olabilir. Robots.txt dosyası yok ise oluşturun ve içeriğini aşağıdaki ile değiştirin ve sitenizin ana dizinine yükleyin. ″alanadiniz.com/robots.txt″ yolu üzerinden erişilebilir olup olmadığını kontrol edin.
User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /readme.html
Sitemap: https://alanadiniz/sitemap_index.xml
Sitemap komutunu sitenize göre düzenleyin. Böylelikle sitenize giren örümceklerin ilk uğrayacağı robots.txt dosyası ile birlikte;
- Bütün arama motoru botlarına
- sitenize yüklenen dosya ve resimleri dizine alabileceğini
- eklenti dosyalarını ve ″readme.html″ dosyasını taramaması gerektiğini
- ve site haritasının nerede olduğunu belirtiyoruz.
Robots.txt Kullanımı ile Oluşan Güvenlik Riski
Robots.txt dosyası siteye uğrayan tarayıcı robotlara talimat ve yönergeler veren, önerilerde bulunan bir dosyadır. Sitenizde istediğiniz bölümleri engellediğiniz, erişime kapattığınız sunucu dosyası değildir!
Siteniz hakkında kötü niyetlere sahip tarayıcı botlar ise bu dosyayı görmezden gelebilir veya amaçları doğrultusunda kötüye kullanabilir.
Bazı kötü niyetli tarayıcı botlar ile nüfuz etmeye, açık bulmaya çalışan, siteye sızmak için çeşitli testler yapan (penetrasyon testi) proğramlar, ziyaret edilmesi veya taranması istenmeyen site bölümlerini bulmak için robots.txt dosyasından faydalanırlar.
Bir web sitesinde özel verileri ele geçirmeye çalışan ve özel bölümlere erişmeye çalışan -ister insan olsun ister proğram- robots.txt dosyasının taranmasını istemediği yada taranmasına izin verdiği listeyi bir harita olarak görebilir. Bu yüzden ilk bakacakları yerlerden birisi robots.txt dosyası olacaktır.
Robot Dışlama Standardı ile robots.txt dosyası üzerinden gizlenmek istenen dosyaların aslında gizlenmediği ve rakiplere bilmesini istemediğiniz verileri sunuyor olduğunuz durumlar olabiliyor.
Yani site yöneticisi tarafından içerik, sayfa dosya veya klasör başta olmak üzere sitede istenmeyen bölümünü gizli tutmak için robots.txt dosyası kullanılıyorsa, tam aksini yapıyor olabilir.
Örneğin robots.txt dosyaları, A/B testi URL yapıları veya sitenin geliştirilmekte olan yeni bölümleri hakkında detaylar içerebilir.
Bu durum anlık büyük bir güvenlik sorunu oluşturmayabilir ancak hassas bölgelerin ulaşılması kolay bir belgede belirtilmesi birçok riski de beraberinde getirebilir.
Robots.txt Dosyası ile Ortaya Çıkan Güvenlik Risklerini Azaltma Yöntemleri
Robots.txt dosyasının neden olduğu güvenlik sorunlarını en aza indirmekte kullanabileceğiniz birkaç yöntemi bulunmakta.
1. Robots.txt Dosyasının Ne Olduğu ve Ne İçin Kullanıldığını Doğru Anlayın!
Arama motorları tarafından sitenizde bulunan bir URL adresi indexlendiyse, Robot Dışlama Standardı (Robots Exclusion Standard) bunu dizinden kaldırmaya yardımcı olmaz veya indexlenmesine mani olmaz.
Site yöneticileri tarafından belirli bir URL′in taranması istenmese de arama motorları bu bağlantıları dizine ekleyebilirler. Ki ekliyorlar bazen. Tarama ile dizine ekleme (indexleme) farklı işlemlerdir ve robots.txt dosyası bağlantıların indexlenmesini durduracak bir şey yapmaz.
2. Hem Noindex Hem de Robots.txt Disallow Komutu Kullanımına Dikkat Edin!
Arama motorları tarafından sitenizde bulunan bir sayfanın indexlenmesini istemiyorsanız sayfanınetiketleri arasına aşağıdaki kodları girebilirsiniz.
Sadece google′ın indexlemesini istemiyorsanız da aşağıdaki kodu kullanabilirsiniz.
Sayfa zaten dizine eklendiyse arama motorları sayfanızı ziyaret ettikten sonra bu etiket sayesinde sayfayı dizinden kaldırmış olurlar. Ancak burada dikkat etmeniz gereken bir konu var.
Arama motoru örümcekleri sayfanızı ziyaret etmeden önce sitenizde bulunan robots.txt dosyasını kontrol ederler ve bu talimatlara göre sayfanıza geçiş yaparlar.
Eğer siz robots.txt dosyasında bu sayfanızı disallow talimatı ile erişime engellediğinizi bildirirseniz botlar sayfanıza uğramaz. Bu durumda dizine eklenmiş olan sayfanızı dizinden kaldırmak istediğiniz halde kaldıramamış olursunuz.
Ayrıca sitenizin indexlenmiş olan bu sayfanıza arama motorları erişmez ise ″Robots.txt dosyası nedeniyle sayfanız kullanılamıyor″ tarzında uyarılar da alabilirsiniz. Bazı sorunlara sebep olabilir, aklınızda bulunsun.
3. Sayfaya Erişilebilsin Ancak İndexlenmesin İstiyorsanız Noindex Kullanın, Disallow Değil!
Bu şekilde kullanırsanız arama motoru örümcekleri sitenize girip dizine eklenmemesi gereken bir URL bağlantısı bulduğunda dizine eklememiş olacak.
Sayfalarınızı herkese açık olarak tutmak yerine özel hale getirmek istiyorsanız IP korumalı bir sistem kullanmanız veya parola oluşturmanız gerekir. Ya da sadece kendiniz görebilmek için taslak şeklinde paylaşmanız veya site yöneticilerinin görebileceği şekilde izinleri ayarlamanız gerekir.
4. Disallow Komutunu Klasörler için Kullanın, Özel Sayfaları için Kullanmayın
Disallow kullanarak özel sayfalarınızı erişmeleri için bilgisayar korsanlarının işini kolaylaştırmayın.
Kötü niyetli kişiler brute force (kaba kuvvet) tekniği kullanarak yada inurl arama operatörü yoluyla arama motorlarında aramaya çalışabilir ancak onlara sunarak işlerini kolaylaştırmanın bir anlamı yok.
5. Kara Listeye Eklemek için Tuzak Kurun
Ne demiştik. Kötü niyetli kişilerin ilk baktıkları sayfalardan biri robots.txt dosyası. Admin giriş sayfası başta olmak üzere normal kullanıcıların görmesine gerek duyulmayan özel sayfaları arayan korsanlara honeypot (balküpü) tekniğini uygulayabilirsiniz.
Honeypot tekniği, sunucuda sahte özel sayfalar oluşturarak, özel sayfaları arayan korsanları bu sahte sayfalara çekme ve bu sayfadan onların IP bilgileri olmak üzere stratejilerini tespit etmeye çalışma yöntemidir.
Örnek olarak, Robots.txt dosyasına ″Disallow: /admin/login.php″ komutunu eklersiniz. Bu sayfaya girmeye çalışan kişinin IP bilgisi üzerinden kara listeye eklersiniz.
Sonuç
Robots.txt dosyası arama motorları gibi iyi niyetli botlara, web sitesinde ne yapmaları, nasıl hareket etmeleri hakkında talimatlar veren kritik bir SEO aracıdır. Ancak site güvenliği amacıyla bu dosyanın yanlış kullanımı siteye büyük zararlar verebilir.
Arama sonuçlarında görünmeyen, indexlenmeyen ancak kullanıcılara açık olması istenen web sayfalarınız olduğunda, sayfalarınetiketleri arasına etiketini yerleştirmek yeterlidir ve doğru olan da budur.
İndexlenmesi istenmeyen özel sayfaların URL adreslerini robots.txt dosyasına toplu halde, listeli bir şekilde eklemek gizlilik adına yapılan en yanlış yöntemlerden biridir. Ki çoğu durumda yanlış kullanımdan dolayı istenilen sonucun tam tersi, siteye büyük zararlar verebilecek durumlara sebep olabilir.