Php’de Seo Url Fonksiyonu

Php ile Seo’ya uygun url oluşturan bir fonksiyon yazalım. Bunun için ihtiyacımız olan temel PHP fonksiyonları; strip_tags (html taglarını silmek için), trim (baştaki ve sondaki boşlukları silmek için), str_replace (karakter değişimi için), strtolower (karakterleri küçültmek için) ve preg_replace (belirlediklerimiz dışındaki karakterleri silmek için)’dır. Fonksiyonumuzun adı “beybut_url”.

Fonksiyonun kullanım çıktısı “ayse-tatile-ciksin” biçiminde olacaktır.

Ffmpeg’de İşlevsel Komutlar

Ffmpeg, komut ortamında video ve resim düzenleyebileceğiniz açık kaynak kodlu bir yazılımdır. Bu yazılımla, özellikle videolar üzerinde birçok işlemi gerçekleştirebilirsiniz. FFmpeg’in bu kadar ilgi görmesinin en büyük nedeni Php, Python, C# gibi dillerle komut yardımıyla video işleme yapılabilmesidir.

Günümüzde özellikle Youtube işiyle uğraşan yükleyicilerin, bot yazılımcılarının sıkça kullandığı Ffmpeg ile birkaç ay önce ben de içli dışlı oldum. Ne yazık ki Türkçe kaynakların yetersizliği, var olan Türkçe kaynakların ise kurulum ve basit kullanım örneklerinden ibaret oluşu bizleri yabancı kaynaklara yönlendiriyor. Bu amaçla gerçekten işinize yarıyacak denediğim/geliştirdiğim bazı komutları paylaşmak istiyorum.

Komutlara geçmeden önce Php aracılığıyla Ffmpeg’in nasıl kullanılacağına bir örnek verelim. Php’de Ffmpeg komutlarını kullanmak için Exec veya Shell_exec ifadeleri kullanılıyor. Ancak paylaşımlı bir hosting kullanıyorsanız çoğu sunucunun güvenlik riski nedeniyle bu fonksiyonları kapatmış olabileceğini belirtmekte yarar var.

Biçimiyle Php üzerinden Ffmpeg emirleri verebilirsiniz.

FFMpeg ile Videoları Birleştirmek

Bu komut videolar.txt içindeki videoları birleştirerek toplu.mp4 adında tek video dosyası haline getirir. Burada videolar.txt içindeki video yollarına, videolar.txt’in ve çıktı videosunun doğru yolun tanımlanmasına dikkat etmelisiniz.

FFMpeg ile Youtube Eşleşen İçerik Denetimini Atlatmak

Youtube ile uğraşanların çoğu kopyalayarak kanallarına yükledikleri videoların “eşleşen” vermesinden şikayet ederler. Bu denetimi geçmenin birden fazla yolu olmasına rağmen en kolayı basit bir frame işlemidir. Bu yolla kopya videolar “eşleşen üçüncü taraf içeriği” uyarısı vermemekte.

FFMpeg’de Video Sesini Silmek

Youtbe’un en çok sorun çıkardığı, telif haklarıyla ilgili uyarılara neden olan konusu video sesleridir. Aşağıdaki komut satırıyla videonuzdaki tüm sesi silebilirsiniz.

Charlie Chaplin olmadığınıza göre videonuzun sessizliği can sıkıcı olacaktır. O halde şimdi videoya bir ses ekleyelim.

FFMpeg’de Videoya Ses Eklemek

Bu komut, videonuza ilgili sesi montajlar. Mp3 süresinin videodan uzunluğunu gözardı eder. Başka bir ifadeyle aslolan videodur.

FFMpeg ile Videoya Logo (Watermark) Basmak

Son olarak videomuzun üzerine logomuzu basalım. Bunun için transparan bir PNG tercih edebilirsiniz. Örnekte X ekseninin tepe noktasına 10 pixel, Y ekseninin tepe noktasına da 10 pixel uzaklıkta bir logo basıyoruz. Bu da yaklaşık sağ üst köşe oluyor.

 

Tüm Ffmpeg komutları için dikkat etmeniz gereken en önemli nokta, dosya yollarıdır. Komutların tümünün çalışabilirliği tarafımca denendi.

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.