OKAN @ 21-10-2009 00:54:
> 1. mysql_real_escape_string() fonksiyonunun kullanımı hakkında bilgi
> rica ediyorum, bu fonksiyonu, magic_quotas ON iken kullanmaya gerek
> yoktur yazanbazı forum mesajları gordum, dogru mudur? Yani magic_quotas
> tam olarak ne işe yarar?

kesinlikle magic_quotes kullanmayın, ve magic_quotes'a güvenmeyin. aşması 
çok kolay bir sistem olduğu ve bir çok XSS saldırısında güvenilirliği 
yıpratılmış olduğu için yeni sürüm php'lerde zaten kapalı olarak geliyor. 
php.ini'yi inceleyin, adında magic_ yazan her şeyi kapalı tutmanızı tavsiye 
ederim. özellikle $_GET, $_POST, $_COOKIE, ve $_SESSION değişkenlerini asla 
başıboş bırakmayın ve otomatik olarak değil, sizin tarafınızdan bir 
değişkene atanmalarını sağlayın. yoksa scriptinizde ciddi güvenlik açıkları 
doğurabilir.

eğer php.ini'ye müdahale şansınız yoksa bir .htaccess dosyası ile 
php_admin_value ve php_flag komutlarıyla bu ayarları kapatın, yine de 
kapatamıyorsanız servis sağlayıcınıza bildirin.

mysql_real_escape_string'e de güvenmeyin, ikisinin yaptığı hemen hemen aynı 
şey. addslashes, htmlentities ve htmlspecialchars'ı birlikte kullanın.

> 2. htmlentities(), htmlspecialchars() ile HTML karakterleri
> dönüştürüyoruz, siz bu dönüşümü veriyi veritanabına yazarken mi

eğer WYSIWYG bir editör kullanmıyorsanız veritabanına yazarken dönüştürmek 
daha mantıklı, çünkü veritabanına eklemeden önce dönüştürmezseniz 
veritabanına veriyi sokacak olan scriptinizde arıza verdirebilir, bu da XSS 
açığı demektir. kullanıcı ile interaktif bir iletişiminiz varsa mutlaka 
kontrollü olmakta fayda var.

-- 
Omer Barlas
[email protected]
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap