On Sun, 2013-01-13 at 23:32 +0200, Yunus Oksuz wrote:
> Ben bir sistemi eğer fw kullanmadan yazıyorsam tüm routing işlemini
> index.php üzerinden yapiyor ve diğer php dosyalarına direct access
> vermiyorum. index.php'de $_POST, $_GET ve $_REQUEST global dizilerini
> filtreliyorum şu şekilde;
>
> function deep_escape_string($var){
> return (is_array($var)) ? array_map('deep_escape_string',
> $var) : mysql_real_escape_string($var);
> }
>
> index'im içinde de
> $_POST = deep_escape_string($_POST);
> $_GET = deep_escape_string($_GET);
>
> $_REQUEST = deep_escape_string($_REQUEST);
>
>
> gibi kullanıyorum. Bence injection için bunun dışında bir önlem almaya
> gerek yok. Dilerseniz hex sorgular için 0x'i gelen datanin içinden yok
> ederek hexadecimal ifadeleri anlamlaştırabilirsiniz.
>
Tum requestleri inspect etmek, her isleminizi veritabanindan
yapiyorsaniz makul olabilir ancak uygulamanizin yalnizca bazi yerlerinde
SQL kullaniyorsaniz neden bunu yapasiniz? Fazladan islemci ve ram
anlamina gelir. Ustelik mysql_real_escape_string veritabani baglantisi
olmadan calismiyor. Veritabani ile isinizin olmadigi durumlarda da
veritabanina escape yaptirmak pek makul degil bencce. Hele hele file
upload gibi islemler yapiliyor ve bu dosyalar veritabaninda
saklanmiyorsa. Bu durumda bahsettiginiz yontem her projeye uygun olmayan
bir yapi olabilir. Yalnizca gerekli noktalarda yapilmasi bence daha
uygun. Tabi performans sorunu olmayan az kullanicili sistemlerde bu
uygulanabilir belki ancak $ahsim adina boyle birseyi ben tercih
etmezdim.
--
M.Atıf CEYLAN
Yurdum Yazılım
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php