<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.8.4" -->
<rss version="0.92">
<channel>
	<title>Zihni Kaya</title>
	<link>http://www.zihni.net</link>
	<description></description>
	<lastBuildDate>Mon, 26 Oct 2009 14:40:14 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Güvenli PHP Uygulamaları &#8211; Formların Güvenliği</title>
		<description>Betiklerimize istemediğimiz yerlerden form verilerinin gönderilmesiyle ortaya çıkar.

Aşağıdaki gibi bir formumuz(form.php) olsun:


	
	
	
	



Bu formu işleyen sayfamız(formIsle.php) ise aşağıdaki gibi olsun, formdan gelen medeni hali bilgisini yazdırıyor.




Saldırganın aşağıdaki formu(form.php) kendi bilgisayarından gönderdiğini varsayalım. Formun action özelliğine tam adresi yazıyor.



	
	



Form işleyen(formIsle.php) sayfamız yukarıda gönderilen formu işler.





Medeni hali, bekar-evli-dul değerlerinden birini alması gerekirken, "yalancı" ...</description>
		<link>http://www.zihni.net/php/guvenli-php-uygulamalari-formlarin-guvenligi/</link>
			</item>
	<item>
		<title>Güvenli PHP Uygulamaları &#8211; Cross site scripting(XSS)</title>
		<description>Kullanıcının betiklerimize html kodu enjekte etmesiyle ortaya çıkar.
Girdi filtrelenmeden çıktı olarak sunuluyorsa bu saldıya uğranabilir.

Aşağıdaki gibi bir formumuz olsun:






Formdaki mesaj alanına  aşağıdaki javascript kodunun enjekte edildiğini varsayalım.



Girdiyi filtrelemeden, aşağıdaki şekilde ekrana yazdırırsak, sayfaya giren her kullanıcıyı istediğimiz siteye yönlendiririz.



Yukardaki kodun zararlı etkilerinden korunmak için girdiyi htmlentities() işleviyle filtrelememiz gerekir.


	

	 </description>
		<link>http://www.zihni.net/php/guvenli-php-uygulamalari-cross-site-scripting-xss/</link>
			</item>
	<item>
		<title>Güvenli PHP Uygulamaları &#8211; Kullanıcı Girdilerinin Filtrelenmesi</title>
		<description>Kullanıcı girdilerine güvenilmemeli, betiklerimizin güvenliği için
tüm girdiler filtrelenmelidir.

Örneğin kullanıcıdan yaş bilgisini isteyelim:

Kullanıcıdan beklenen girdi, sayı türünde bir değerdir.
Aşağıdaki kod bu doğrulamayı yapar.
$sonuc = preg_match("/[0-9]{1,3}/",$_POST['yas']);
if($sonuc === true)
echo "Girdi doğrulandı";
else
echo "Girdi sayı değil";
Kullanıcının hayat hikayesini istediğimizi varsayalım, yukardaki gibi bir basit bir doğrulama yapamayız, bunun yerine php nin bize sunduğu temel filtreleme ...</description>
		<link>http://www.zihni.net/php/kullanici-girdilerini-filtrelenmesi/</link>
			</item>
	<item>
		<title>Javascript Hatası:&#8230;submit is not a function</title>
		<description>Javascripteki ayrılmış kelimeler(reserved words), button ismi ve fonksiyon olarak kullanıldığında çatışma(collision) meydana geliyor.

Hata Mesajı:

this.form.submit is not a function


"Submit" metodunu kullandığım yer:




Buton adı olarak "submit" kulladığım yer:




Buton adını "submit"ten başka bir adla, örneğin "ekle" olarak değiştirdiğimde sorun düzeliyor.


 </description>
		<link>http://www.zihni.net/dom/javascript-hatasithisformsubmit-is-not-a-function/</link>
			</item>
	<item>
		<title>Güvenli PHP Uygulamaları-Sql enjektelerine karşı önlemler</title>
		<description>Veritabanına gönderilen her bir değişken mysql_real_escape_string()
işlevinden geçirilerek sql enjeksiyonlarına karşı önlem alınabilir.
Bu işlev  veritabanları için özel anlamı olan karakterleri escape-kurtarma işlemine tabii tutar,
bu karakterlerden bazıları:  \n, \r, \, ', "

Aşağıdaki gibi kullanıcı adı ve şifre alanlarından oluşan bir giriş formumuz olsun:




mysql_real_escape_string



Kullanıcı adı: 
Şifre 





Kullanıcının formdan aşağıdaki bilgileri gönderdiğini ...</description>
		<link>http://www.zihni.net/php/guvenli-php-uygulamalari-sql-enjeksiyon-saldirilarina-karsi-onlemler/</link>
			</item>
</channel>
</rss>
