<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>print &#34;Güray Süerdem&#34;; &#187; güvenlik</title>
	<atom:link href="http://www.guraysuerdem.com/etiket/guvenlik/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guraysuerdem.com</link>
	<description>PHP, MySQL ve Açık Kaynak</description>
	<lastBuildDate>Thu, 19 Jan 2012 09:29:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Güvenli Bir Üyelik Sistemi İçin Temel İpuçları</title>
		<link>http://www.guraysuerdem.com/guvenli-bir-uyelik-sistemi-icin-temel-ipuclari/</link>
		<comments>http://www.guraysuerdem.com/guvenli-bir-uyelik-sistemi-icin-temel-ipuclari/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 18:53:30 +0000</pubDate>
		<dc:creator>Güray Süerdem</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[güvenlik]]></category>
		<category><![CDATA[ipuçları]]></category>
		<category><![CDATA[PHP Dersleri]]></category>

		<guid isPermaLink="false">http://www.guraysuerdem.com/2008/03/07/guvenli-bir-uyelik-sistemi-icin-temel-ipuclari/</guid>
		<description><![CDATA[Eğer kullanıcıların üye olarak bilgilerini paylaştığı bir ağ tabanlı sistem geliştiriyorsanız (Session,Cookie) ve bu bilgileri bir veritabanında saklıyorsanız; bu bilgiler kullanıcı ve sunucu arasında olduğundan dolayı araya 3. bir kişinin girmesine izin vermemek için kendinizden emin olana dek tüm güvenlik risklerini gözden geçirmeniz gereklidir.

Bunun başlangıç noktası projeye başlamadan önce küçük hataları önlemektir.Burada size anlatacağım konu [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Eğer kullanıcıların üye olarak bilgilerini paylaştığı bir ağ tabanlı sistem geliştiriyorsanız (Session,Cookie) ve bu bilgileri bir veritabanında saklıyorsanız; bu bilgiler kullanıcı ve sunucu arasında olduğundan dolayı araya 3. bir kişinin girmesine izin vermemek için kendinizden emin olana dek tüm güvenlik risklerini gözden geçirmeniz gereklidir.<br />
<br />
<span id="more-107"></span>Bunun başlangıç noktası projeye başlamadan önce küçük hataları önlemektir.Burada size anlatacağım konu <strong>PHP</strong> ile olduğu için kodlama yaparken nelere dikkat etmeniz ve bazı ipuçlarını öğrenmenizdir.<br />
<br />
Aşağıda güvenlik ipuçları olarak verdiğim bilgiler projenizi geliştirirken dikkat etmenizi kesinlikle tavsiye ettiğim yöntemlerdir.<br />
<br />
1-  <strong>Üye ismi ve şifresini 6 karakter veya daha uzun yapın.</strong><br />
<br />
2-  <strong>Oturum açma hatasında kullanıcıyı bilgilendirin.</strong><br />
Kullanıcı sisteme giriş yaparken eğer parolayı yanlış girmişse hata mesajı gösterin.Eğer tekrar yanlış parola ile girmeye çalışıyorsa üç yanlış denemeden sonra o kullanıcı adı ile girişi bir müddet yasaklayın ve şifremi unuttum bölümüne yönlendirerek şifrenin mail adresine gelmesini, geldikten sonra değiştirilmesini önerin.<br />
<br />
3-  <strong>İşlemlerinizin başına @ hata bastırma simgesini yerleştirin.</strong><br />
Birçok <strong>PHP</strong> fonksiyonunun önünde @ simgesi yer alır.Eğer yapılması istenen işlem başarısız olursa @ simgesi hatanın ekranda gösterilmesini önleyecektir.En faydalı olduğu işlemlerin başında SQL ile veritabanında bir işlem yaptığınızda hatanın gösterilmesini engeller.Bu hataların engellenmesi ile SQL hatalarından kaynaklanan güvenlik açıklarınıda engellemiş oluruz.<br />
<br />
4-  <strong>Kullanıcı parolalarını veritabanında şifreleyerek saklayın (MD5,CRYPT,SHA-1)</strong><br />
Eğer biri veritabanınıza erişim sağladıysa tüm kullanıcı bilgilerini ve parolalarını görebilir.Ama parolayı bir şifreleme yöntemi ile sakladığımızda kişinin parolayı öğrenmesini engelleriz.<a href="http://www.guraysuerdem.com/2007/12/30/sifreleme-metodlari-md5-crypt/">Şifreleme Metodları</a> yazımda bu konu hakkında detaylı bilgi alabilirsiniz.<br />
<br />
5-  <strong>Hiçbir zaman yönetici isminizi admin,root veya yönetici şeklinde yapmayın.</strong><br />
Herkesin bildiği ve çok kullanılan üye isimlerini kullanmanız risklidir.<br />
<br />
6-  <strong>Kullanıcının sisteme giriş yaptığı son zamanı ve IP adresini saklayın.</strong><br />
Kullanıcının giriş yaptığı son zamanı saklayın ve IP adresini kaydedin.Ayrıca kullanıcı daha sonra giriş yaptığında son giriş zamanını ve ip adresini kullanıcıyada gösterin.<br />
<br />
7-  <strong>Herhangi bir form alanı verisinden tehlikeli SQL,PHP,<strong>HTML</strong> komutlarını ve karakterleri temizleyin.</strong><br />
<a href="http://www.guraysuerdem.com/2008/01/11/strip_tags-fonksiyonu/">strip_tags()</a> , <a href="http://www.guraysuerdem.com/2008/01/13/str_replace-fonkisyonu/">str_replace()</a> ve <a href="http://www.guraysuerdem.com/2008/01/11/stripslashes-ve-addslashes-fonksiyonu/">stripslashes()</a> fonksiyonları ile bu komutları engelleyebilirsiniz.<br />
<br />
8-  <strong><strong>HTML</strong> form alanlarınızda &#8220;maxlenght&#8221; seçeneğini kullanın.</strong><br />
Eğer veritabanında saklayacağınız üye ismi veya parolanın maximum uzunluğunu 8 karakter olarak belirlemek isterseniz form alanınıza &#8220;maxlenght&#8221; seçeneğini eklemeniz gereklidir.Bu sayede uzun girişleri engelleyebilirsiniz.<br />
<br />
Örnek: &lt;input type=&#8221;text&#8221; name=&#8221;giris&#8221; size=&#8221;8&#8243; maxlenght=&#8221;8&#8243;&gt;<br />
<br />
9-  <strong>$_REQUEST yerine $_POST kullanın.</strong><br />
<br />
10-  <strong>Son olarakta eğer önemli ve büyük bir projeyse SSL Sertifikası kullanın.</strong><br />
Daha yazılması gereken birçok şey var fakat tecrübe kazandıkça herşeyi öğreneceksiniz.Şu an için temel önlemleri öğrenmeniz diğer yöntemler için bir alt yapı taşıyacaktır.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.guraysuerdem.com/guvenli-bir-uyelik-sistemi-icin-temel-ipuclari/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Sadece Belirli Kullanıcılara Erişim İzni Vermek</title>
		<link>http://www.guraysuerdem.com/sadece-belirli-kullanicilara-erisim-izni-vermek/</link>
		<comments>http://www.guraysuerdem.com/sadece-belirli-kullanicilara-erisim-izni-vermek/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 22:51:27 +0000</pubDate>
		<dc:creator>Güray Süerdem</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[erişim]]></category>
		<category><![CDATA[güvenlik]]></category>
		<category><![CDATA[PHP Dersleri]]></category>

		<guid isPermaLink="false">http://www.guraysuerdem.com/2008/02/25/sadece-belirli-kullanicilara-erisim-izni-vermek/</guid>
		<description><![CDATA[Sitenin bazı sayfa ve bölümlerine erişimi sınırlandırmak için yazdığım makalede tek yetkili olarak girilebiliniyordu. Erişim izni verilen kullanıcıları çoğaltmak için bunun üzerinde farklı yöntemlerde denenir fakat ben en basitini göstermeyi uygun gördüm. Yapacağımız bir txt dosyamıza kullanıcıları ve karşlığınada şifreleri tanımlamak. Sonra bir döngüye girerek dosyada tanımlanan kullanıcıları doğrulayıp erişim izni vermektir.
Baştan yetkililer isminde bir [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Sitenin bazı sayfa ve bölümlerine erişimi sınırlandırmak için yazdığım <a href="http://www.guraysuerdem.com/2008/02/23/php-ile-sayfalara-erisimi-sinirlandirmak/">makalede</a> tek yetkili olarak girilebiliniyordu. Erişim izni verilen kullanıcıları çoğaltmak için bunun üzerinde farklı yöntemlerde denenir fakat ben en basitini göstermeyi uygun gördüm. Yapacağımız bir<strong> txt</strong> dosyamıza <strong>kullanıcıları ve karşlığınada şifreleri tanımlamak</strong>. Sonra bir <strong>döngüye</strong> girerek dosyada tanımlanan kullanıcıları doğrulayıp erişim izni vermektir.<br />
Baştan<strong> yetkililer</strong> isminde bir <strong>txt</strong> dosya oluşturuyoruz. Kendi belirlediğiniz ismide verebilirsiniz.<br />
<br />
İçeriği aşağıdaki gibi <strong>yetkili|sifre</strong> şeklinde olacak.<br />
</p>
<pre class="brush: php;">Güray|123456
admin|admin</pre>
<p>
En son olarak kodumuzun bulunduğu sayfamızı yapalım ve <strong>iki</strong> dosyayı aynı dizin içinde kullanmalıyız, bunu kendi isteğinize göre değiştirebilirsiniz.<br />
</p>
<pre class="brush: php;">&lt;?<strong>php</strong>

if (!isset($PHP_AUTH_USER)){

header('WWW-Authenticate: Basic realm=&quot;Erişim Sınırlandırılmıştır&quot;');

header('HTTP/1.0 401 Unauthorized');

echo &quot;Bu Sayfayı Görüntüleyebilmek İçin Giriş Yapmanız Gereklidir&quot;;

exit;

}

$liste = file(&quot;yetkililer.txt&quot;);

$i=0; $dogrulama=false;

while($liste[$i] &amp;&amp; !$dogrulama){

$yetkili = explode(&quot;|&quot;,$liste[$i]);

if (($PHP_AUTH_USER==$yetkili[0]) &amp;&amp; ($PHP_AUTH_PW==chop($yetkili[1]))) $validado=true;

$i++;

}

if (!$dogrulama){

header('WWW-Authenticate: Basic realm=&quot;Erişim Sınırlandırılmıştır&quot;');

header('HTTP/1.0 401 Unauthorized');

echo 'Bu Sayfayı Görüntüleyebilmek İçin Giriş Yapmanız Gereklidir';

exit;

}

?&gt;

&lt;<strong>html</strong>&gt;

&lt;head&gt;

&lt;title&gt;Sınırlı Erişim Sayfası&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

Merhaba &lt;b&gt;&lt;?<strong>php</strong> echo $PHP_AUTH_USER ?&gt;&lt;/b&gt; burası sizin Özel Sayfanız.

&lt;/body&gt;

&lt;/<strong>html</strong>&gt;</pre>
<p>
Uygulama dosyasını <a href="http://www.guraysuerdem.com/dosya/cokluerisim.rar">buradan</a> indirebilirsiniz.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.guraysuerdem.com/sadece-belirli-kullanicilara-erisim-izni-vermek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Güvenlik Rehberi</title>
		<link>http://www.guraysuerdem.com/php-guvenlik-rehberi/</link>
		<comments>http://www.guraysuerdem.com/php-guvenlik-rehberi/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 20:20:35 +0000</pubDate>
		<dc:creator>Güray Süerdem</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[güvenlik]]></category>
		<category><![CDATA[PHP Dersleri]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.guraysuerdem.com/2008/02/15/php-guvenlik-rehberi/</guid>
		<description><![CDATA[PHP ile uygulama geliştirmeyi artık ilerlettiniz ve işin en önemli kısmı güvenliğe geldi.Zaten güvenlik sonradan yapılması gereken birşey değildir daha kod yazmaya başlarken bunu benimsemeniz gereklidir.Bu yüzden yazacağınız kodlarda hataya düşmemeniz için bazı önlemler almanız lazım.

Bunun için PHP Security Consortium (PHPSC) çok güzel bir kaynak hazırlamış.
]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><strong>PHP</strong> ile uygulama geliştirmeyi artık ilerlettiniz ve işin en önemli kısmı güvenliğe geldi.Zaten güvenlik sonradan yapılması gereken birşey değildir daha kod yazmaya başlarken bunu benimsemeniz gereklidir.Bu yüzden yazacağınız kodlarda hataya düşmemeniz için bazı önlemler almanız lazım.<br />
<span id="more-99"></span><br />
Bunun için <a target="_blank" href="http://phpsec.org/" rel="nofollow" target="_blank"><strong>PHP</strong> Security Consortium (PHPSC)</a> çok güzel bir kaynak hazırlamış.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.guraysuerdem.com/php-guvenlik-rehberi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

