Tarih : 12-09-2009 | imza : sysgeek | Kategori : Php ve programlama
0
Bildiğimiz gibi Windows platformlarda Denetim Masası bölümünde Zamanlanmış Görevler diye bir ibare bulunmakta. Çalıştırmak istediğimiz herhangi bir uygulamayı, dosyayı bu özellik sayesinde istediğimiz gün istediğimiz saat ve dakikada otomatik çalıştırabiliyoruz. İstersek günlük, istersek haftalık veya aylık, çalıştırma periyotu bize kalmış.
Aynı bu sistem gibi Linux platform üzerinde Cpanel ile gelen bir özellikten bahsetmek istiyorum. “Cron jobs..”
Uygulama mantığı aynı windows platformdaki gibi işliyor. Sunucu üzerindeki bir dosyanızı belirlediğiniz periyotlarda kendi çalıştırıyor. Bu benim ne işime yarayabilir diyecek olursanız bazen öyle bir yarıyor ki. Örneğin her gün sitenizin yedeğini almaktan bıktınız ve artık otomatik aldırmak istiyorsunuz. Bir site backup’ı oluşturan script yazdığınızda bu dosyayıda cron jobs ile günlük çalışmaya ayarladığınızda artık sizin yedek almanıza gerek kalmıyor. Ayrıca işlemin tamamlanıp tamamlanmadığıda size mail olarak bildiriliyor.
Tarih : 10-05-2009 | imza : sysgeek | Kategori : Php ve programlama
0
Neden web programlama yaparız sorusuna verebileceğimiz en net cevap site içerisindeki dinamik olan ihtiyaçların kolayca karşılanması olurdu. Her programlama dili gibi web programlama dillerinde de mantık aynıdır. Programlayanın algoritma yeteneği üzerine kuruludur. Amaca, sistemi yormadan en kısa yoldan ulaşmak esastır. Buda kabaca algoritmanın tanımı oluyor. Algoritma ile ilgili yazıları makaleler arasında bulabilirsiniz.
Gördüğümüz üzere bazı web sitelerinde üyelik sistemleri, dijital sayaçlar, resim galerileri, iletişim ve üyelik formları, başvuru ve destek sistemleri, arıza takip sistemleri ve daha akla gelmeyen bir çok şey web programlama sayesinde kullanılıyor. Web programlama olmasaydı sitelerimiz statik html sayfalarından ibaret olurdu. Değişikliği local olarak yapmak zorunda kalırdık. Ama şimdi ise yönetim panelimizden istediğimiz gibi yönetim yapmamız mümkündür.
Web programlama yapan kişilere yazılımcı yada web tabiriyle coder diyoruz. Diyelim ki 2 tane üyelik sistemi var. Bu iki üyelik sistemini iki tane ayrı ayrı yazılımcı kodlamış olsun. İkiside amaca ulaşıyor gibi gözükebilir ama kodlama yapısı (akış diyagramı) birbirinden çok farklı olabilir. Birisi amaca en kısa yoldan derli toplu kod yapısı kullanarak ulaşmıştır. Kendi fonksiyon yapısını kullanmıştır, güvenlik açıklarını kapatmıştır, olası istisnalara karşı önlemini almıştır, diğeri ise görünürde üyelik sistemi olarak gözüküyor olabilir ama optimizeden bihaber, güvenlik açıkları mevcut, olası istisnalara karşı önlemleri almamış olabilir. Bunu anlamak biraz zor olsa da kullandıkça ortaya çıkan buglar ( hatalar), tecrübesiz yazılımcıyı ortaya çıkaracaktır.
İyi bir yazılımcı bir işe başlamadan önce kağıt üzerine yapacağı sistemle ilgili ayrıntılı bir taslak çıkarır. Akış diyagramını üşenmeden çizer ve olası istisnaları daha yazılıma başlamadan önce tespit eder ve önlemini alır.Bunu yapmayan bir yazılımcının yaptığı yazılımda ilerleyen zamanlarda hatalar, eksiklikler çıkacaktır. Çünkü bilgisayarlar, programı, yazılımcının kurduğu algoritmayı işleyerek çalıştırırlar. Yazılımcının es geçtiği noktalarda ise hata verirler. Yada bir güvenlik açığına sebebiyet verirler.
Tarih : 23-03-2009 | imza : sysgeek | Kategori : Php ve programlama
0
Php 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 mysql 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.
Tarih : 16-03-2009 | imza : sysgeek | Kategori : Php ve programlama
1
Brute Force atağı web 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 web 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.