Htaccess ile Engelleme Türleri
|Yazı dizimizin bu son bölümünde htaccess ile IP tabanlı engelleme, yönlendirici tabanlı engelleme, casus botlar ile site indirme uygulamalarını engelleme, htacess dosyasının görüntülenmesini engelleme, site haritalarının indekslenmesini engelleme ve resimler ile dosyalar hotlink korumasının yapılması hakkındaki detaylardan bahsedeceğiz.
Bu yazı ile yazı dizisinin orijinali ilk olarak E-Siber.com’da 2008‘de Mekin Pesen tarafından yayınlanmıştır. Domain adresi değişikliği nedeniyle yazı buraya taşınmıştır. Bu yazı izinsiz olarak hiçbir şekilde başka yerde kullanılamaz.
IP Tabanlı Ziyaretçi Engelleme
Htaccess ile bir sayfaya, dizine veya sitenin tümüne IP tabanlı engelleme koyabilir, istenilen IP’lere izin verip geri kalan tüm IP’leri engelleyebilirsiniz. Bunu yapmanın birkaç yolu var:
Apache 2.4 için:
|
Apache 2.2 için:
|
Üstteki örnekte bütün IP’ler, 1.2.3.4 nolu IP haricinde engellenir. İsterseniz tam tersi bir mantıkla sadece 1.2.3.4 nolu IP’yi engelleyip, geri kalan tüm IP’lere de izin verebilirsiniz. Bunun için de alttaki formatı kullanmanız gerekir:
Apache 2.4 için
|
Apache 2.2 için:
|
Aynı zamanda engellemeleri dizin bazında veya RequireAll’a göre de ayarlayabilirsiniz:
Dizinler için (“/” kök dizinine)
|
<RequireAll> Require all granted Require not ip 10.252.46.165 </RequireAll> |
Ayrıca Apache 2.4 için user-agent veya zaman kısıtlı tabanlı engellemeler de söz konusu. Farklı türden engellemeler için https://httpd.apache.org/docs/2.4/howto/access.html adresine bakabilirsiniz. Yine bu bağlamda herhangi bir dosyaya veya .htaccess dosyasının kendisine de internetten başkaları tarafından erişilmemesi için engel koyabilirsiniz. Bunun için de alttaki htaccess kuralından yararlanıyoruz:
<Files .htaccess>
order allow,deny
deny from all
</Files>
Yönlendirici Tabanlı Engelleme
Başka bir siteden veya user-agent bilgisi üzerinden gelen ziyaretçileri engellemek için yine htaccess’ten yararlanabilirsiniz. Tek bir siteden gelen yönlendirici trafiği engellemek için:
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} kotusite.com [NC]
RewriteRule .* - [F]
İstenmeyen bir bot sistemden gelen ziyaretleri engellemek için de:
<If "%{HTTP_USER_AGENT} == 'KotuBot'">
Require all denied
</If>
‘KotuBot’ yerine ilgili bot sisteminin user-agent adını yazmalısınız. Aynı zamanda toplu bir şekilde kötücül/casus bot veya site indirme uygulamalarını engellemek isterseniz de altaki kuralları kullanabilirsiniz:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:[email protected] [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC Web Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web Image Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]
Htaccess ile Site Resimlerine ve Dosyalarına Hotlink Koruması
Hotlinking koruması, yani pdf, gif, jpg, css, js vb uzantılı içeriklerinize başka bir web sayfası üzerinden izinsiz olarak erişilmesini önlemek için alttaki kuraldan yararlanıyoruz:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?sizinadresiniz.com/.*$ [NC]
RewriteRule .(gif|jpg|js|css|mp3|pdf)$ - [F]
Yukarıdaki 4. satırda parantez içine başka tür dosyalarınız varsa onları da ekleyebilirsiniz. Ayrıca sadece belli bir dosyaya link koruması koymak istiyorsanız; yine yukarıda 4.satır yerine aşağıdaki kodu koyarak ilgili dosyanızı koruyabilirsiniz.:
RewriteRule .(gif|jpg)$ http://www.sizinadresiniz.com/resim.gif [R,L]
Arama Motorlarının Site Haritasını İndekslemesini Engellemek
Tek yapmanız gereken aşağıdaki kuralı var olan .htaccess dosyanıza eklemektir:
<IfModule mod_rewrite.c>
<Files sitemap.xml>
Header set X-Robots-Tag "noindex"
</Files>
</IfModule>
Eğer farklı amaçlar için birden çok site haritası kullanıyor ve hepsini birden engellemek istiyorsanız da aşağıdaki kuralı kullanmanız gerekiyor:
<IfModule mod_rewrite.c>
<Files ~ "^(sitemap1|sitemap2|sitemap3).xml$">
Header set X-Robots-Tag "noindex"
</Files>
</IfModule>