Reklam

Reklamlar

9 Haziran 2010 Çarşamba

PEAR ve MDB2 ile “Prepare & Execute” sayesinde SQL injection saldırılarına karşı koymak

PEAR'da MDB2 ile veritabanı işlemleri hakkında daha önce döküman yazmıştım (aynı anda yayınladım gerçi). MDB2 ile veritabanı işlemleri ile ilgili bilgi edinmek için http://www.mfyz.com/?/dokuman/99/pear-da-mdb2-ile-.....islemleri/ dökümanını okuyun. Bu dökümanda veri işleme ile ilgili kısımlardan bahsetmeyeceğim.



SQL injection, başımızın belası :-)


SQL injextion saldırılarını çok duyuyoruz. Çok da yeni bir şey değil aslında. Fakat çok büyük sitelerde, devlet siteleri, ticari siteler vs. Dikkatsiz programcılar veya dikkatsiz programlama sonucu bu saldırılara kurban gidiyor. Her gün bir yerlerin "hack"lendiğini görüyoruz. Muazzam işler yapmaya gerek yok bu saldırıları yapmak için.

Aynı şekilde bu açıkları vermemek için de muazzam önlemler almanıza gerek yok aslında. Bütün olay kullanıcın girdiği metinleri işlerken ve ekrana basarken kontrollü basmakta yatıyor bu injection, xss saldırılarının altyapıları. Sitenizde sql'inize veya htmlinize enjekte etmek istedikleri şeyleri aslında sizin tırnaklarla sınırladığınız alandan kaçarak başarıyorlar. Tabiki herşey tırnakta çözülmüyor fakat dananın kuyruğunu kopardıkları yer sizin sınırlandırdığınız noktadan kaçabilmekte :-) Yani Hex kodları ile tırnak veya özel karakterler girilmeye çalışıyor, tırnaklar kullanılıyor veya ascii, htmlentity, htmlencode ile özel karakter girmeye çalışılıyor. XSS konusunda burada bahsetmeyeceğim.

SQL injection için eğer pear ve mdb2 kullanmıyorsanız, kullanıcıdan gelen string türü verileriniz için mysql'de mysql_real_escape fonksiyonunu kullanabilirsiniz. Metinlerinizi bu fonksiyondan geçirip sqlinize sokun. Eğer MDB2 kullanıyorsanız Preapre ve Execute fonksiyon grubu ile uygulatmak istediğiniz sql cümlenizdeki değişkenleri işletmeden önce veri türüne göre güvenli hale getirebilirsiniz.

Aslında tek görevi güvenlik değil bu fonksiyonların. Asıl amaç veritabanına doğru türde veri göndermek. Aynı zamanda tek sql'i tekrar tekrar yazmadan birden fazla çalıştırmanızı da sağlıyor. Güzelliklerine az sonra değineceğim :-)

MDB2'de bir sorguyu işletmek için

PHP ile grafikli sayaç uygulaması

Bu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Yapmamız gereken şey genel anlamda şöyle olacaktır :

- Sayfamız ziyaretçiyi karşılar ve ona daha önce sayfamızı ziyaret ettiğine dair bir bilgi yani cookie gönderilip-gönderilmediğini kontrol eder.
- Eğer ziyaretçimiz daha önce de aynı sayfaya girmişse, zaten onda mevcut bulunan (daha önce kaç kez girdiğini gösteren) cookie değeri alınır ve bu değer 1 arttırarak tekrar ziyaretçimize yollanır.
- İlk defa giriyorsa değişkenin degeri NULL yani 0 atanacak, 1 artırılıp cookie olarak atılacaktır.
Böylece her girişinde değer bir artacağı için, onun sayfamızı kaç kez ziyaret ettiğini görmemiz mümkün oBu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Pear'da MDB2 ile veritabanı işlemleri

MDB2 nedir?


MDB2 pear'da eskiden DB adıyla geliştirilen ve bir süre önce gelişimi durdurulup projeyi mdb2 olarak devam ettirdikleri bir veritabanı yönetim kütüphanesidir. Aslında sırayla girdiğimiz mysql_connect, mysql_select_db, mysql_query ... gibi işlemleri biraz daha ortak yapıda kullanmamızı sağlayan, çeşitli yetenekleri olan güvenli bir kütüphane.

Normalde veritabanımıza (mysql, mssql veya pgsql farketmez) bağlanırken bağlantı kaynak değşkeni oluştururuz. Örneğin :

Hızlı Ve Kolay Adsense Hesabı nasıl alınır ?

Merhaba arkadaşlar.. Piyasada adsense alabilmek için yüzbinlerce yazı mevcut.. Fakat ben size bugün tamamen kendi deneyimlerim ve bilgilerimle adsense hesabı nasıl alınır, nasıl onaylanır ve nasıl daha çok kazanılır bunları anlatacağım..
http://www.megahowto.com/wp-content/uploads/2009/11/Adsense-Logo.jpg
İlk olarak yeni bir adsense hesabı almak için , ve adsense hesabımızda kullanabilmek için bir gmail hesabı oluşturuyoruz.
Gmail hesabı oluşturmak için şu linke tıklayın. Yukarıda ad, soyad, kullanıcı adını doldurduktan sonra alt taraftaki kurtarma e-postası bölümüne daha önce hiçbir yerde kullanmadığınız ve mümkünse gmail ve hotmail dışında bir e-mail seçiniz.. Eğer web siteniz varsa kendi hostinginizden alacğaınız  ornek@seninsiten.com gibisinden bir mail alınız.
Bu işlemi tamanladıktan sonra gmail hesabınızı oluşturun ve sayfayı kapatın.Sırada adsense hesabımızı oluşturmak var.

CSS'de Pozisyonlar - CSS Position

CSS pozisyon elemanları adından da anlaşılacağı üzere, elemanların sayfa içerisindeki pozisyonlarını belirlemeye yarar. Elemanın etrafında ne kadar boşluk olacağı, neyin arkasında ya da neyin kenarında olacağına CSS position özelliği ile sağlayabiliriz.
Elementleri pozisyonlamada top, bottom, left, ve right özelliklerini kullanırız. Ancak bu değişkenler CSS pozisyon özelliklerini başta belirtmeden kullanılamaz.Ayrıca bu özellikler farklı konumlandırma ayarları ile çalışmaktadırlar.. Birazdan vereceğim örneklerle ne demek istediğimi acıkca anlayacağınızı umuyorum.

Statik Konumlandırma

HTML elemanlar ana ayarlarında (default) statik bir konumlandırmaya ayarlanmıştır.Static  konumlandırmada elemanlar sayfanın normal kod akışına göre dizilmektedirler.. Yani ilk önce bir resim kullandıysak ve sonrasında ise bir yazı kullanırsak bunlar kullandığımız sıraya göre HTML de yer alırlar.. İşte pozisyon özelliği ile bunu ortadan kaldırabiliriz.

Fixed Pozisyon

Çoğu web sitesinde karşılaştığımız bir özellik olan sabitleme genellikle reklam alanlarında yada kullanıcların sürekli görmesini istediğimiz bölümlerde kullanılan bir özellik haline gelmiştir.. Sabit konumlamadan kastımız içerisinde kullanacağımız bölümü sayfada aynı bölgede kalmasını sağlamaktan başka birşey değildir. Bu özelliğin adı aslında fixed olarak adlandırılmıştır.. Bir örnek yapalım;

Professional PHP Programing (E-book 900 Sayfa)

Arkadaşlar mükemmel bir kaynak. İçinde forum bile yazmışlar.
Kitap ismi = Professional PHP Programing
Sayfa = 900 Sayfa
Dil = İngilizce

PHP - Curl Nedir ?

CURL (Client URL)

1.Curl Nedir ?

Curl php'nin değişik türlerdeki severlarla bir çok protokol ile alış-veriş yapması sağlayan bir kütüphanedir.
Curl ile http, ftp, telnet.. gibi protokollerde çalışabilrisiniz. Ancak benim şimdilik bildiğim sadece http kısmı. Http ile post/get işlemleri yapabilir bu işlemlerde cookie kullanabilirsiniz.

Php'ye Curl kütüphanesini eklemek için php.ini dosyanızdan curl'e ait extension satırının başındaki noktalı virgülü silmeniz yeterli olacaktır. (Aşağıda yazacağım kodları PHP4 ile denedim PHP5 'te çalışma garantisi yok )

CURL işlemleri birer oturum olarak çalıştırılır. Bu da demek oluyor ki eğer curl ile bir işlem yapacaksak önce bir curl oturumu başlatmanız lazım. Daha sonra bu işleme ait ayarları yapıp işlemi çalıştırmak sonunda da oturumu kapatmalıyız.

2. CURL Fonksiyonları

2.1. curl_init()

Bu fonksiyon curl oturumu başlatmaya yarar. Argüman olarak oturumun açılacağı url'yi verebilirsinizde tabii isterseniz argümansız olarak çağırıp url'yi sonradan ayarlayabilirsiniz. Oturum açtığınız zaman bu oturumu bir değişkene atayarak oturum işlemlerini bu değişken üstünden yapmalısınız.

$curl_oturumu =curl_init();
veya
$curl_oturumu =curl_init("www.spymastersnake.org/";

Artık oturum açılmış ve $curl_oturumu adlı değikende tutulmuştur.

2.2. curl_setopt()

Curl_setopt fonksiyonu açtığınız oturumun özelliklerini belirlemek yani değişkenlerini değiştirmek içindir. Bu değişkenlerin bazıları açıklamalarıyla aşağıdadır:

İşte Kendi Hazırladığım "Php Ders 1 "

Arkadaşlar dersimizi çektik toplam 18 dakika ve dersimizde 'echo' komutu yani php'de öğrenilmesi gerek ilk şeyleri gayet güzel anlattım. Dersi izleyerek rahatça bunları öğrenebilir ve gerçekleştirebilirsiniz!


İşte Php için Süper Bir E-book !

Arkadaşlar web'de dolaşırken mükemmel bir kaynak buldum
Tam 343 Sayfa .
CMS Framework öğrenmek iiçn hazırlanmış bir kitap.
Orta ve İleri seviye bir kitap denilebilir.


Assembly Öğrenmek İsteyenler İçin Süper Kaynak

Arkadaşlar çok güzel bir döküman buldum ve biraz göz attım. İngilizceniz varsa gerçekten mükemmel bir kaynak. Birazcık'ta assembly'yi merak ediyorsanız 195 sayfalık bu kaynak gerçekten çok işinize yarayacak bir E-book ve bedava.

ebook library