WP AntiFlood: WordPress Flood Koruma Eklentisi

WordPress flood koruma eklentisi, WP Anti Flood ile blogunuza yönelen istekleri Ip adresi ve milisaniye bazında bekleterek yönlendirmeye tabi tutabilirsiniz. WordPress blogunuza yönelen ve http isteğinde bulunan saldırıların tahribatını yine WordPress üzerinden azaltabilirsiniz. Saldırıların neden olduğu yüksek kaynak kullanımından meydana gelen yavaşlıktan, fazla bağlantı nedeniyle oluşan “Error establishing a database connection” hatalarından sıyrılmanız olanaklı.

 

Wordpress Flood Koruması WP AntiFlood Eklentisi
WordPress Flood Koruması WP AntiFlood Eklentisi

WP AntiFlood’un Çalışma Süreci

WP AntiFlood eklentisi, Worpdress’e eklemlenen işlem öncesi, PHP tabanlı bir süzgeçtir. Bu süzgeç, bir ip adresinden gelen isteğin zamanını session yardımıyla depolayarak; aynı ip adresinden gelen bir sonraki isteğin zamanıyla ilk isteğin zamanını karşılaştırır. Eğer Settings bölümünde milisaniye cinsinden belirlediğiniz süreden daha kısa bir sürede http get/post talebinde bulunulmuşsa ilgili ip adresini bir geçiş/kapı sayfasına yönlendirir. Bu geçiş sayfası hızlı talepte bulunan kişiyi birkaç saniyeliğine yavaşlatıp istekte bulunduğu sayfaya tekrar yönlendirir. Eğer aşırı istek nedeniyle bir veritabanı hatasıyla karşılaşıldıysa yine bir kapı kullanarak talep edilen sayfaya yönlendirme yapar. Böylece -sunucu ve ağ optimizasyonunuzla da ilişkili olarak- yüksek talepte bulunan ipler beklemeye alınıp normal ziyaretçilerin bu yoğunluktan en az biçimde etkilenmesi; site hızının ve kararlılığının, sunucu kaynaklarının korunması amaçlanır.

WP AntiFlood Hangi Durumlarda Kullanılır?

WP AntiFlood, blogunuz için daima önerilen bir yazılımımız. Çünkü bir saldırının ne zaman geleceğini kestirmek mümkün değil. Normal zamanlarda Level 1-2-3’te bırakabileceğiniz eklenti ayarı, saldırı durumlarında Level 4-5 veya belirlediğiniz bir ayara (Random) çekilebilir.

WP AntiFlood Arama Motorlarını Engeller Mi? veya Arama Motorları Taklit Edilerek Saldırı Yapılabilir Mi?

Wp AntiFlood’un arama motorlarını engellememesi için kullanılan bir fonksiyona sahiptir. Bu fonksiyonun manipule edilmemesi için referer, browser agent yerine IP/hostname tabanlı bir tarama yapılır. Böylece flood araçlarını kullanan ip adresleri, arama motorlarını taklit edemez. Wp AntiFlood proxy flood saldırılarında da gerçek ip adresine ulaşmaya çalışarak bu ip adresiyle ilgili veriyi sessionda saklar. Bu sayede transparan ve bazı anonymous proxyler WPAntiFlood’u alt edemez.

Wp AntiFlood, Blogumu Tüm Ddos/Botnet Saldırılarından Korur Mu?

Hayır. Wp AntiFlood, WordPress’e eklemlenen bir PHP yazılımıdır. Direk olarak network veya Internet bağlantınız ile ilgili bir koruma sağlamaz. WordPress’in sunucu (cpu, ram vb.) ve Internet kaynak kullanımını, http saldırıları süresince, en alt düzeyde tutmayı amaçlar.

Wp AntiFlood’un Artıları Nelerdir?

Wp AntiFlood eklentisi;

  1. Bir veritabanına gereksinim duymaz. WordPress veritabanını kullanmaz. Bu anlamda ekstra bir yüke veya koruma zaafiyetine neden olmaz.
  2. WordPress’in “options” ayarlarına kaydolmaz. Tüm işlemleri PHP dosyasına yazma/değiştirme yoluyla sağlar. Böylece en az düzeyde kaynak tüketir ve özgürce çalışır.
  3. wp-admin/, ?s= arama sorguları gibi WordPressle ilgili tüm görüntülenebilir sayfalar flood korumasına dahildir.
  4. Random bölümüyle özelleştirilebilir. Sunucu ve Internet özelliklerinizle de ilişkili olarak koruma düzeyini milisaniye cinsinden özelleştirebilirsiniz.
  5. İçeriğinde zararlı kodlar, başka bir siteyle bağlantı bulunmaz. Bir ihtiyaçtan ortaya çıkarak kullanıcılara temiz biçimde ulaşmıştır.
  6. Açık kaynak kodlu ve ücretsizdir.
  7. Talep ve takdir ile gelişime daima açıktır.

WordPress’in resmi sitesinde eklentinin sayfasına ulaşabilir; eklentiyi oradan kurabilirsiniz. Ancak oradaki sürümü ilk olduğundan ve onay süreci gerektirdiğinden aşağıdaki indirme bağlantısını kullanabilirsiniz. Yine de beklemek ve ilk sürümü kullanmak isterseniz: https://wordpress.org/plugins/wp-antiflood/

Wp AntiFlood Eklentisini İndir

Kurulum: Zip dosyasının içeriğini Worpdress’in kurulu olduğu dizinde /wp-content/plugins klasörüne klasör olarak Ftp ile yükleyin. WordPress admin panelinizde Eklentiler bölümünden eklentiyi etkinleştirerek; sol menüde görebileceğiniz bölüme tıklayıp ayarları kendinize göre yapıp kaydedin.

İyi kullanımlar dilerim. Geliştirme için görüş ve taleplerinizi lütfen yorum bölümünden bildiriniz.

Php İle WordPress’e Yazı Ekleme

Php kullanarak WordPress’e yazı ekleyebilirsiniz. Bu işlem, Php WordPress bot yazılımları için ideal bir seçim olabilir.

Bu içeriğimizde, Php ile WordPress’e yazı ekleme yanında, başlık mevcudiyet kontrolü ve sitemap ping işlemlerini de yapacağız. Neredeyse tam bir WordPress Php botu yazmış olacağız.

WordPress’in standart editöründen sıkıldıysanız veya Php bot ile WordPress’e içerik eklemek istiyorsanız bunu basit bir fonksiyonla gerçekleştirebilirsiniz.

Ekleme yapacak Php dosyanızı WordPress’in bulunduğu dizine göndermeyi unutmayınız. Eğer farklı bir klasör kullanacaksanız include edilen (içselleştirilen) wp-blog-header.php dosyasının tam yolunu belirlemelisiniz.

Gerekli WordPress dosyasını içselleştirelim:

Başlığımız “Beybut Ne Anlama Geliyor?” olsun. Bu başlık daha önce yazılarımızda (çöp dahil) varsa işlemleri durduralım. Eğer yoksa ekleme işlemine devam edelim.

Şimdi içeriğimizi WordPress’e ekleyelim.

wp_insert_post işlevinin bütün değişkenleri için burayı referans alabilirsiniz.

post_category: Yazının gönderileceği kategorinin id’sidir. Eğer id’yi bilmiyorsanız WordPress yönetici panelinden Yeni Yazı Ekle bölümüne gelip sayfa kaynağını görüntüleyin. Kategorilerinizden birinin adını sayfa kaynağında aratın.

biçiminde gördüğünüz seçim düğmesindeki value değeri kategorinizin id’sidir. Burada 35…

post_title: Yazı başlığınız.

post_author: Yazar id’si. Admin için bu id 1’dir.

post_status: Yayınlanma durumu. publish yayına açık anlamına geliyor.

ping_status: Pinglenme durumu 1 ise ping servislerine ping gönderiliyor. Kapatmak için 0 değeri verilebilir.

post_content: Yazınızın içeriği.

Eğer etiket kullanmak isterseniz “tags_input” ile etiketlerinizi belirleyebilirsiniz.

Neredeyse bitti. Son olarak güncellenen sitemapımızı Webmaster Tools’a gönderelim (pingleyelim). Bunun için Php’nin file_get_contents fonksiyonunu kullanacağız. İsterseniz Curl da kullanabilirsiniz.

Artık WordPress’e kolayca yazı ekleyebileceğiniz tam teşekküllü bir Php botuna sahipsiniz.

WordPress PHP Flood Koruması

WordPress’te flood saldırılarını engellemek için Php imdadımıza yetişiyor. Bilindiği gibi WordPress, Mysql veritabanını yoğun biçimde kullanan bir yazılım. Cache eklentileri kullansanız bile kimi zaman flood (tekrarlanan istekler) saldırılarıyla veritabanı sunucunuz devre dışı bırakılabiliyor. Özellikle arama bölümüne (?s=a gibi) çok sayıda istek gönderilmesiyle birlikte “Error establishing a database connection” gibi bir hatayla karşılaşmanız olası. Bu tip bir saldırıya bir nebze karşı koymak Php ile mümkün.

Geliştirdiğim Biçimiyle Artık Bir WordPress Eklentisi

WordPress için PHP Firewall Yazalım

Blogumuza gelen istekleri bir süzgeç yardımıyla değerlendirip; flood olabilecek istekleri reddedelim.  Bunun için PHP’de sessionları kullanacağız. Eğer bir ip adresi belirlediğimiz süreden daha hızlı işlem yapmaya çalışıyorsa onu yine belirlediğimiz bir iletiyle uyaracağız.

 

Bu kod ile saniyede birden fazla istekte bulunan kişilere belirlediğimiz iletiyi gösteriyor; ardından çalışmayı “die” ile durduruyoruz. Böylece istek yapan ip adresi henüz veritabanına ulaşmadan engellenmiş oluyor.

Php Firewall’in Kullanımı

WordPress’in kurulu olduğu dizine girerek index.php dosyanızı indirin. Sayfanın en başına yukarıdaki kod parçasını yapıştırıp dosyayı kaydettikten sonra bu dosyayı tekrar sitenize yükleyin.

Wordpress PHP Firewall - Flood Koruması

Bu kod parçasını temanızdaki header.php’nin en üstüne eklemek yerine index.php’ye eklemiş olmamızın yegane nedeni index.php ile yorumlanan bütün içeriğin, veritabanı gibi işlemlere başlamadan, koruma altına alınmasıdır.

Bu oldukça basit bir kod parçasıdır. Ancak ihtiyaç duyduğunuzda imdadınıza yetişebilir. Genellikle saldırı altında olduğunuzda bu kodu kullanmanız daha mantıklı olabilir. Ancak süreyi 1 saniye yerine 3-4 saniye yapmanız (+ 1 olan kısmı +3 veya +4 olarak değiştirerek) daha yoğun saldırıların üstesinden gelmenizi sağlayabilir. Çok yoğun saldırıları önlemek için sunucu ve network tabanlı güvenlik önlemlerini düşünmelisiniz.

Bu kod parçası ile yalnızca WordPress değil PHP yazılımlarınızı da koruyabilirsiniz. Birkaç değişiklikle hemen her Php yazılımına entegre edilebilir. Joomla, Vbulletin, Mybb gibi popüler web yazılımlarında da aynı mantıkla basit bir koruma sağlayabilirsiniz.

Yoğun saldıralarda yüksek sayıda (her ip için) session oluşturulması saldırının bir session flooda dönüşmesine neden olabilir. Ancak her koşulda mysql’e yönelik bir saldırıdan daha az yorucu olduğunu söyleyebiliriz.

PHP Firewall’in örnek adresine şuradan ulaşabilirsiniz: http://www.beybut.com/demo/firewall-demo.php

Örnek sayfayı açtığınızda F5 tuşuna hızlıca basarak sayfayı yenileyiniz ve gelen mesajları takip ediniz. Eğer 2 saniyeden daha hızlı istek gönderirseniz koruma kodu devreye girecek ve şirin bir mesaj alacaksınız.

İlk Blog Yazısı Nasıl Olmalı?

İlk blog yazısı nasıl olmalı? Yeni bir blog açtınız ve ne yazacağınızı düşünüyorsunuz değil mi? Bu yazı Beybut’un ilk gönderisi olmanın yanında, blogunuzdaki ilk yazınızın nasıl olabileceğine dair ipuçları içeriyor.

Bir gün herkes 15 dakikalığına ünlü olacak.” demiş Andy Warhol (1). Amacınız ünlü olmak mı bilmiyorum ancak günümüzde geldiğimiz nokta buna çok uygun. Sosyal medyanın eski medyanın yerini alması, erişilebilirliğin toplum tabanına yayılması, yeni medya araçlarının çeşitlenmesi hepimizin her an ünlü olabilme olasılığını artırıyor. Artık bir capse konu olmak, bir sokak röportajındaki açıklamanızla fenomen haline gelmek, Vine, Periscope, Youtube videonuzdaki garipliklerle adınızdan söz ettirmek içten bile değil. Peki gerçekten istediğiniz bu mu? Kısa süreliğine bilinir olmak ve birkaç ay içinde unutulmayı mı istiyorsunuz? Eğer bir blog yazmaya karar verdiyseniz amacınızın yalnızca 15 dakikalık ün olmadığını ikimiz de biliyoruz. Siz, emek vermek; düşüncelerinizi, bildiklerinizi, yaşantınızı başka insanlarla özel bir alanda paylaşmak istiyorsunuz.

Blogunuzu açmaya karar verdiğinizde ne üzerine yazacağınızı az çok biliyorsunuzdur. Blogunuzun genel örüntüsü ne üzerine olacaksa ilk yazınız bu örüntüye uygun bir konuyu içerebilir.

Blogların klasik kitaplardan farklı olduğunu unutmamak gerekiyor. Başka bir ifadeyle blogunuzu ziyaret eden kişi bir kitabın ilk sayfasına, önsözüne bakar gibi ilk yazınızla karşılaşmayacak. Kendinizden bahsedecekseniz bunu “Hakkımda” bölümüyle yapmak daha mantıklı olacaktır. “Ben Ahmet. Yaşım 15. Boyum 1.50. Dayak yemeyi severim.” gibi bir girişin, kolay erişimli, hakkında sayfasında olması makul bir seçim.

O halde ilk yazımızın, blogumuzun genel konusuna uygun bir başlık olabileceğinde hemfikiriz. İlk yazınızda çokça kendinizden bahsetmek yerine blogunuzun konusundan, içerik planlarınızdan bahsedebilirsiniz. Bu bağlamda uydurduğum birkaç örneği inceleyelim. Blogunuzun genel içeriğine göre ilk blog yazınızın ne olabileceği konusunda basit bir tablo yapalım.

[one_half]Genel Blog İçeriği

  1. Edebiyat Blogu
  2. Tarih Blogu
  3. Siyaset Blogu
  4. Teknoloji Blogu
  5. Kişisel Blog
  6. Kadın ve Moda Blogları

[/one_half]

[one_half_last]İlk Blog Yazısı İçin Örnek Başlıklar

  1. İlk Cemre / Her şey Elifle başladı / Sana ilk mektubum
  2. Ateş ve tekerlek / Tarih neden var? / Bir vakanüvistin ilk heyecanı
  3. Siyasi bir başlangıç / Kuyuya taş atmak
  4. WordPressli bir başlangıç / Blog yazmak / Çevirmeli bağlantıdan fibere
  5. Karın ağrıma ortak olur musun? / Ben ve ötesi / Başlangıç
  6. İlk buluşma / Tanrı kadını yarattı / Şıkır şıkır bir başlangıç

[/one_half_last]

Blogunuzun ilk yazısı sonraki yazılarınız için sizi disipline edebilecek bir başlangıçtır. Blog çerçevesini genel hatlarıyla anlatarak hem okuyucularınıza hem de arama motorlarına doğru sinyaller gönderebilirsiniz.

İyi bloglamalar dilerim.

1: Andy Warhol – Amerikalı yayıncı, yapımcı ve fotoğrafçı. [Wiki]