Php ile rss takibi yapımı

Tarih : 23-03-2009 | imza : Burak | Kategori : Yazılarım

0

rssPhp ile kategorilerinize göre özel rss takibi hazırlayabilirsiniz. Hemde bir tek dosyayla bütün kategorilerinizin takibini yaptırabilirsiniz. Öncelikle rss hakkında biraz bilgi vereyim. Türkçe’de Zengin Site Özeti anlamına gelir. Rss’in altyapısı xml dosyalarıdır. Bu yazımda ise xml dosyasını php içerisine gömerek ve istediğimiz kategoriye göre tek dosyada rss takibimizi yapmayı anlatıyorum.Rss’i destekleyen tüm sitelerin rss adresi vardır. Ve bu adresleri RSS okuyucunuza okutup o siteye yeni bir içerik girildiğinde anında haberdar olursunuz. Sitenize girmeden içerik girilmiş mi girilmemiş mi bilginiz olur. Yeni eklenen içerik,  başlığından linkine kadar ayağınıza gelir. Sizede okumak incelemek kalır. Günümüzdeki birçok tarayıcı rss okuyucusunu içerisinde barındırıyor. Bunun haricinde Mozilla Thunderbird programıyla hem maillerinizi okuyabilir, hemde rss adresi okutabilirsiniz.

Aşağıda basit bir rss takibinin kodlarını veriyorum. Gerekli açıklamaları aşağıda yazıyorum..

[php]
<? include "baglanti.php";

header("Content-type: text/xmlnn");

echo "<?xml version="1.0" encoding="ISO-8859-9"?>
<rss version="2.0">
<channel>
<title>RSS BAŞLIĞINIZ</title>
<description>SİTENİZİN TANIMI</description>
<link>http://www.siteniz.com/</link>
<language>en-us</language>";
$kategori = $_GET['kat'];
mysql_query("SET NAMES latin5");
$yazilar = mysql_query("SELECT * FROM yazilariniz where kategori=’$kategori’ ORDER BY id DESC LIMIT 20");
while($yazi = mysql_fetch_array($yazilar)) {
$link = "http://www.siteniz.com/".$kategori;
echo "
<item>
<title>".$yazi['baslik']."</title>
<description>".$yazi['yazi']."</description>
<link>Buraya yazı linki verilecek. Sitenizde yazılar nasıl linklendiriliyorsa ona göre ayarlayabilirsiniz.</link>
</item>";
}

echo "
</channel>
</rss>";

?>[/php]

Buradaki mantığı açıklıyorum. Standart xml dosyamızın bazı taglarını sayfamız içerisinde oluşturduk.

Rss linkimiz şu şekilde olmalı : rss.php?kategori=internet

Daha sonra linkten GET methoduyla gelen kategori değerini çektik. Ben yukarıda herhangi bir filtreleme yapmadım ama siz güvenlik açıkları için önlemleri almayı unutmayın. Alabileceğiniz bazı önlemleri önceki makalelerimde bulabilirsiniz.
Daha sonra Türkçe karakter sorunu yaşanmaması için MysqlLorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. karakter karşılaştırmasını latin5 olarak ayarlattık. Veritabanı sorgumuzu başlattık. Sorguda; yazilar tablosundaki, linkten gelen kategoride olan yazıları filtreledik ve id sırasına göre yeniden eskiye doğru sıraladık. Max 20 tanesini gösterecek. Ve bunu döngümüzle rss ögesi olarak döndürdük. Gördüğünüz üzere aslında mantık basit. Mantığı kurduktan sonra rss takip sisteminizi bile kendiniz hazırlayabilirsiniz.

Lightbox ile resim görüntüleme

Tarih : 20-03-2009 | imza : Burak | Kategori : Yazılarım

3

Lightbox nedir?

lightbox-preview-largeLightbox, sitenizdeki resimlerin üzerine tıklandığında büyüyerek sayfanın üzerinde açılan ve arkaplanı karartan bir resim görüntüleme uygulamasıdır. Lightbox kullanarak webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. sitenizde ki görselliği arttırabilirsiniz. Ayrıca herhangi bir resmi görüntülediğiniz zaman ileri, geri seçenekleriyle resim galerisi olarakta kullanabilirsiniz.

Nasıl kullanılır?

Aslında kullanımı çok basittir. Öncelikle buradan lightbox dosyalarını indirin ve arşivi açın. Üç klasör ve bir tanede html dosyası göreceksiniz. Lightboxu kullanmak istediğiniz dizine sadece 3 klasörü atın.

Resimlerin olduğu sayfanızın <head></head> tagları arasına aşağıdaki kodu ekliyorsunuz.

[php]<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>[/php]

Burada gerekli olan JS kütüphanesini ve bu küçük uygulamanın css dosyasını çağırıyoruz.

Gelelim resim linkine;

[php]<a href="resimler/resimdosyasi.jpg" rel="lightbox"><img src="thumb/kucukresim.jpg" width="100" height="40"/></a>[/php]

Burada resme normal bir link verdik. Ek olarak yapmamız gereken tek şey ise link verdiğimiz tagın rel parametresine lightbox’ı atamak. Yani rel=”lightbox” kısmı. Bu durumda eğer webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. sitenizin css dosyasında resmin çerçevesini sıfırlamamamış iseniz resmin etrafında bir çerçeve gözükecektir. Bunu yoketmek için ise yapacağınız işlem img tagının içerisine border=”0″ ekleyerek çerçeveyi sıfırlamak.

Bu şartlarda resminize tıkladığınızda görsel bir şekilde açılacaktır.

lightbox

Brute Force nedir? Ne gibi önlemler alınabilir?

Tarih : 16-03-2009 | imza : Burak | Kategori : Yazılarım

1

Brute Force atağı webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. yazılımlarının login kısımlarına yapılan deneme yanılma yöntemidir. Bunu insanlar kendileri yapmaz, bunun için yazılmış olan programları kullanarak yaparlar. Hızlı bir şekilde ellerinde  olan wordlist (kelime listeleri) ile sürekli login sayfasına atak yaparlar. Amaç deneme yanılma yöntemiyle bir kullanıcı adına ait şifreyi bulmak ve yönetimi ele geçirmektir. Yönetimi ele geçirince de webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. sitesi kolayca hacklenir.

Brute Force tekniği; hazır programların yanı sıra, saldırganın yazdığı kötü amaçlı bir bot ile de gerçekleştirilebilir. Bundan korunmak için ilk başta şifrenizin kolay bulunamayan rakam ve harfler hatta işaretlerden oluşmasını prensip haline getirmeniz gerekmektedir. Onun dışında ise bu gibi ataklarda alınacak  en iyi güvenlik önlemi;  form kısımlarında  kullanıcılardan güvenlik kodunun girilmesinin istenmesidir. Bu sayede brute force atağı önlenmiş olacaktır. Çünkü karşıdaki program veya kötü amaçlı bir bot, rastgele oluşan güvenlik kodunu tahmin edemeyecektir. Ve dolayısıyla 1 kere bile giriş denemesi yapamayacaktır.

Formlardaki güvenlik kodlarının yanı sıra sizde basit bir güvenlik aracı yapabilirsiniz. Mesela toplama, çıkarma işlemi sorabilirsiniz. Tabi ki kullanıcılardan her loginde aynı işlemi değil de sayıları değişebilen işlemlerin sonucunu girmelerini isteyebilirsiniz. Bu da brute force atağını engelleyecektir.

Daha önce yazdığım “formlarınıza güvenlik kodu ekleyin” makalemi inceleyerek bu atağın önüne geçebilirsiniz.

HTML Injection tehlikesi

Tarih : 15-03-2009 | imza : Burak | Kategori : Yazılarım

1

injectionBu makalemde “html injection” güvenlik açığı hakkında bilgilendirme yapıp, bu açıktan korunmak için ipuçları vereceğim.

Bu güvenlik açığı; webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. yazılımlarında programcıların güvenlik konusundaki bilgisizliğinden veya dikkatsizliğinden kaynaklanmaktadır. Genellikle ziyaretçilerin veritabanına bilgi girişinde bulunması ve bu bilginin daha sonra site üzerinde çağırılmasıyla oluşur. Ziyaretçi yorumlarının olduğu kısımlarda, ziyaretçilerin profil bilgilerini girdiği kısımlarda giriş yapılan veriyi kontrol ettirmeden direkt olarak veritabanına alınmasından dolayı meydana gelir.

Örnekle açıklamak gerekirse diyelim ki bir webLorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır. sitesinde saldırgan bir makaleye yorum yapıyor. Yorum yerine içerisinde yönlendirme yapmaya yarayan bir meta tagı kullanıyor. Eğer bu girilen veri direkt olarak veritabanına aktarılıyorsa, ziyaretçilerin o yorumun çağrıldığı sayfaya girmesiyle site, saldırganın yönlendirdiği site veya sayfaya yönleniyor. Günümüzde yönlenerek açılan hack sayfaları bu açıktan yararlanılarak yapılmaktadır.

Gelelim nasıl korunacağımıza. En basit korunma yöntemi aslında veriyi siteye çağırırken değilde veritabanına girmeden önce bazı filtrelerden geçirip kaydetmektir. Php dilinde bunun en basit yolu veriyi kaydetmeden önce strip_tags() fonksiyonundan geçirmektir. strip_tags() fonksiyonu veriyi html taglarından arındırır.

if(isset($_POST['gonder'])){

$deneme = strip_tags($_POST['textfield']);
//veriyi veritabanına almadan önce strip_tags() fonksiyonuna alıp öyle değişkene atadık.Böylece veri html taglarından arındırıldı.

$kaydet = mysql_query("INSERT INTO deneme VALUES(NULL,'$deneme')");

if($kaydet){
echo 'Kaydedildi';
}else{
echo 'Kayıtta hata oluştu';
}

}

Bunun gibi fonksiyonlar kullanıp güvenliği arttırmanın yanında sizde kendinize göre güvenlik fonksiyonları üretebilirsiniz. Veya html destekli editör kullanmak istiyorsunuz fakat bazı kodların girilmesini engellemek istiyorsunuz. Bunun içinde kendi yazdığınız fonksiyonları kullanabilirsiniz. Str_replace() fonksiyonu ile gelen bazı değerleri sizin uyarladığınız default değerlere dönüştürebilirsiniz. Güvenlik çok büyük bir kavram ve ne yazık ki sadece bu gösterdiğim kodla güvenliği tamamen sağlamış olmuyorsunuz sadece html injection ataklarına karşı bir önlem almış oluyorsunuz. Zaman zaman elimden geldiğince güvenlik konusunda makale yayınlamayı düşünüyorum.