arşiv

‘Php de Güvenlik’ kategorisi için arşiv

Htaccess

Perşembe, 01 Nis 2010 Fatih Aydın yorum yok

htaccess ( HYPERTEXT ACCESS )

htaccess http sunucunuzda domainlerin ve dosyalara erişimlerin düzenlenebilmesini sağlayan dosyanın adıdır.Bu dosya sunucunuzda her dizinde birer tane olmak üzere birden fazla olabilir.Yanlız bu dosyanın düzenli olmaması,uzun veya karmaşık komutlar içeriyor olması web sayfanıza erişimi yavaşlatacağından olabildiğince düzenli olmasına özen gösteriniz. Burada htaccess ile ilgili temel bilgileri işleyeceğiz. Bu bilgiler mutlaka işinize yarayacaktır.

htacces dosyasını herhangi bir yazı editörü ile oluşturabilirsiniz. Oluşturduğunuz dosyayı kaydederken” .htaccess “ şeklinde kaydetmelisiniz. Aksi takdirde dosyanız sunucunuzda işlenmeyecektir.
devamını oku…

PHP Dosya include Açığından Korunma

Pazar, 14 Mar 2010 mustafa sadoglu 2 yorum

Bu yazımızda adres satırından gelen bir başka saldırı türünü  nasıl engelleyeceğimizi öğreneceğiz.

index.php?sayfa=yukleneceksayfa.php

şeklinde kullanıyorsanız başınız büyük belaya girebilir. Bunun sebebi PHP’nin allow_url_fopen ayarı ON ise uzak sunucudaki (sizin bilgisayarınızın dışında ki bir sunucudan) dosya okutulup çalıştırılabilir. (bir zamanlar sunucum bu yüzden kapanmıştı :)

include $_GET['sayfa'];

GET ile gelen verileri sınırlandırmanız gerekir. Bu iş için switch – case yapısını kullanmak uygun olacaktır.

switch($_GET['sayfa'])
{
case "iletisim": include('iletisim.php');break;
case "haber": include('haber.php'); break;
default: include('index.php');
}

 Bu komutla yüklenecek sayfaları sınırlıyoruz. Eğer adres satırından gelen sayfa isteği bizim tanımladığımız sayfalardan farklı ise default kısmı çalışacaktır ve index.php  yüklenecektir.

Categories: Php, Php de Güvenlik Tags:

PHP GET Temizleme Fonksiyonu

Cumartesi, 13 Mar 2010 mustafa sadoglu yorum yok

Merhabalar… PHP de adres satırından aldığımız (Get metoduyla aldığımız) bilgileri filtrelemeden sitemizde kullanmak hacklenememize sebeb olabilir.
Örnek haber.php?haberno=89 gibi

bunun için kullandığım bir fonksiyonu sizinle paylaşmak istedim.

function temizle_get($metin)
{
    $sonuc = intval($metin);
    $sonuc = str_replace("-","",$sonuc);
return $sonuc;
}

Burada intval sayısal değerlere kadar olan kısmı almaya yarıyor.
str_replace ise adres satırından – işareti ile sql sorgumuzu geçersiz kılmaya çalışanları engellemeye yarıyor

bu fonksiyonu şu şekilde kullanacağız.

haber.php?haberno=89 şeklinde bilgi geldiyse

haber.php de (fonksiyon kodlarını sayfanın üst kısmına yerleştirmeli yada bir php dosyasından include etmeliyiz)

$haberno=temizle_get($_GET[haberno]);

şeklinde filtreleyip gönül rahatlığıyla kullanabilirsiniz.

Categories: Php, Php de Güvenlik Tags:

php Warning: mysql_real_escape_string hatası

Cuma, 05 Şub 2010 mustafa sadoglu yorum yok

merhabalar… yeni yapmaya çalıştığım oturum kontrol sistemim localde gayet güzel çalışırken sunucuma attığımda hata vermişti.

Komut:
$kullaniciadi = strip_tags(mysql_real_escape_string($_POST['kullaniciadi']));

Hata mesajı da:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@'localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 56

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 56

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@'localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 57

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 57

Çözüm :
mysql_real_escape_string() komutunu mysql bağlantısı yapmadan kullanmaya çalışmışım. mysql bağlantı komutlarımı bu satırların öncesine çekince bir sorun kalmadı.

mysql_real_escape_string() nedir?

Bizi sql saldırılarından korumaya yarayan bir komuttur. Örneğin kullanıcı adı şifre sorgulayacağımız yerde aşağıdaki gibi bir sorgu kullanırız:

select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’

Şimdi adamın biri gelip kullancı adı ve şifreye rastgele bişiler yazdıktan sonra
or ’1=1′ yazarsa ne olur ? bakalım:

select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’ or ’1=1′

Sonuç 1 – 1 eşit olduğuna göre kullanıcı adı ve şifreyi bilmeye gerek kalmadan şifre atlanmış olur.

Categories: Php, Php de Güvenlik Tags:

Php Özel Sayfa

Pazartesi, 27 Nis 2009 Samet Dinçer 2 yorum

Başkalarının ulaşmasını istemediğiniz sayfalarınız olabilir.Bunları sadece şifreyi bilenlerin girmesine izin vereceginiz yerlerde olabilir.Bu işlem aslında birçok yerde işinize yarabilir bunun en güzel örneklerinden biriside admin sayfasıdır.Şimdilik burada küçük çaplı bir özel sayfa erişimi koyacağım fakat ileride daha geniş kapsamlı bir admin sayfasına erişimi nasıl engelleyebiliriz onu anlatacağım şimdi kodlara geçelim.

Kullanılan komutlar:
PHP_AUTH_USER : Üye Giriş Bölümü Kullanıcı Adı Komutu
PHP_AUTH_PW : Üye giriş Bölümü Kullanıcı Şifresi Komutu
Authenticate(): İşlemleri Onaylama İşlemi Görür

devamını oku…

Php Flood Güvenliği

Pazartesi, 27 Nis 2009 Samet Dinçer yorum yok

Evet arkadaşlar flood güvenliği devamlı mesaj atmayı engelleyen bir güvenlik önlemidir bu işlemi güvenlik kodu kullanarakda yapabiliriz fakat bu mantk daha uygundur.

Uygulama:

devamını oku…

Php’de Güvenlik

Pazartesi, 27 Nis 2009 Samet Dinçer yorum yok

SQL injection:SQL injection denen method ile veritabanınıza yetkisiz işlem yaptırılabilir.Bunları engellemek için kullanılır.
Htmlspecialchars:
Bu komut html deki özel karakterleri html için normal karakterlere dönüştürür.
Htmlspecialchars_decode:
Özel html imlerini karaktere dönüştürür.Bir nevi htmlspecialchars in tam tersi görevinde işlev görür.
htmlentities : Girdilerde olduğu gibi dışarıya sunulan tüm verilerin de filtrelenmesi gerekmektedir.
strip_tags() : Formlardan gelen html kodlarını temizlemek için stript_tags() fonksiyonunu kullanılır.
Mysql_escape_string : mysql_escape_string — mysql de kullanmak için stringleri uygun biçime dönüştürür.

devamını oku…