Sibergah.comSiber Güvenliğin Bilgi Karargâhı: Sibergah

Htaccess ile Engelleme Türleri

Bu yazı, 3 bölümlü Web Siteleri için Temel Htaccess yazı dizisinin 3. bölümüdür.

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:

<Limit GET POST>
Require all denied
Require ip 1.2.3.4
</Limit>

Apache 2.2 için:

<Limit GET POST>
order deny,allow
deny from all
allow from 1.2.3.4
</Limit></Limit>

Ü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

<Limit GET POST>
Require all granted
Require not ip 1.2.3.4
</Limit>

Apache 2.2 için:

<Limit GET POST>
order deny,allow
allow from all
deny from 1.2.3.4
</Limit></Limit>

Aynı zamanda engellemeleri dizin bazında veya RequireAll’a göre de ayarlayabilirsiniz:

Dizinler için (“/” kök dizinine)

<Directory "/">
order deny,allow
deny from all
allow from 127.0.0.1
allow from 127.0.0.2
</Directory>

<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:craftbot@yahoo.com [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>

Series Navigation<< Htaccess ile Sayfa ve Dizin İşlemleri

Bir Yorum Yazın