• 06-12-2012, 16:01:16
    #1
    Üyeliği durduruldu
    merhaba arkadaşlar şimdi sitedeki tüm içeriğe her ziyaretçi yorum yapabilir. fakat bir takım sorunlar alıyorum. şimdi anlayan arkadaşlardan istediğim sadece kod. mantık istemiyorum bana sadece kod verin en güvenli bir şekilde bkz:

    $Yorum = $_POST["Yorum"];
    mysql_query("insert into yorumlar (yorum) values ('".$Yorum."');");
    bu yorumu en güvenli şekilde filtreleyip ekletmek ve en güvenli şekilde

    mysql_fetch_assoc yaparak sql den listelemek yani xss olsun injection olsun hiçbir açık çıkmayacak şekilde ve ayrıca alpha numeric dışı karakterlerdede @ ' " gibi hata vermeyecek şekilde nasıl yaparız ?
  • 06-12-2012, 17:08:52
    #2
    yaşayacağınız sorunlar neler?
    Şu soruların cevaplarını bulduğunuzda bu sorunları çözersiniz. xss nedir, sql injection nedir nasıl kullanılıyor ve neler yapılıyor. Örnekleri neler?

    Cevabı araştırmazsanız klasiktir bu aşağıdakiler; herkes gibi şöyle yapar geçersiniz.

    mysql_realescape_string($yorum);

    htmlspecial_chars($yorum);

    ya da striptags($yorum);
  • 06-12-2012, 17:16:47
    #3
    Üyeliği durduruldu
    $yorum = mysql_real_escape_string($_POST["yorum"]);
    $gonder = "INSERT INTO yorumlar SET yorum = '$yorum'";
    $yolla = mysql_query($gonder);
    bana göre en sağlıklısı
  • 06-12-2012, 19:11:00
    #4
    Üyeliği durduruldu
    $yorum = mysql_real_escape_string(htmlspecial_chars(striptags($_POST["yorum"]))); 
    $gonder = "INSERT INTO yorumlar SET yorum = '$yorum'"; 
    $yolla = mysql_query($gonder);
    Bu şekil de de kullanabilirsiniz
  • 07-12-2012, 11:39:20
    #5
    Üyeliği durduruldu
    Buyrun alfanümerik karakterler gelse bile bir sorun olmayacaktır.
    /* Genel Filtreleme (ayar dosyanıza koyulabilir.) */
    function temizle( $data )
    {
    	if( is_array($data) )
    	{
    		foreach( $data as $key => $val )
    		{
    			unset($data[$key]);
    			$data[temizle($key)] = temizle($val);
    		}
    	}
    	else
    	{
    		$data = trim( $data );
    		$data = htmlspecialchars( $data, ENT_QUOTES );
    		$data = mysql_real_escape_string( $data );
    	}
    	
    	return $data;
    }
    
    $_GET	 = temizle($_GET);
    $_POST    = temizle($_POST);
    $_SERVER  = temizle($_SERVER);
    $_SESSION = temizle($_SESSION);
    $_COOKIE  = temizle($_COOKIE);
    
    /* #Genel Filtreleme */
    
    
    if( $_POST )
    {
    	$yorum = $_POST['yorum'];
    	if( $yorum )
    	{
    		$query = mysql_query("INSERT INTO yorum SET yorum = '{$yorum}'");
    		if( $query )
    		{
    			echo 'Yorumunuz başarı bir şekilde eklendi..';
    		}
    		else
    		{
    			echo 'Bir sorun oluştu ve yorumunuz eklenemedi.';
    		}
    	}
    	else
    	{
    		echo 'Yorum alanı boş bırakılamaz.';
    	}
    	
    }
  • 07-12-2012, 13:49:59
    #6
    batuhanaydin adlı üyeden alıntı: mesajı görüntüle
    Buyrun alfanümerik karakterler gelse bile bir sorun olmayacaktır.
    /* Genel Filtreleme (ayar dosyanıza koyulabilir.) */
    function temizle( $data )
    {
    	if( is_array($data) )
    	{
    		foreach( $data as $key => $val )
    		{
    			unset($data[$key]);
    			$data[temizle($key)] = temizle($val);
    		}
    	}
    	else
    	{
    		$data = trim( $data );
    		$data = htmlspecialchars( $data, ENT_QUOTES );
    		$data = mysql_real_escape_string( $data );
    	}
    	
    	return $data;
    }
    
    $_GET	 = temizle($_GET);
    $_POST    = temizle($_POST);
    $_SERVER  = temizle($_SERVER);
    $_SESSION = temizle($_SESSION);
    $_COOKIE  = temizle($_COOKIE);
    
    /* #Genel Filtreleme */
    
    
    if( $_POST )
    {
    	$yorum = $_POST['yorum'];
    	if( $yorum )
    	{
    		$query = mysql_query("INSERT INTO yorum SET yorum = '{$yorum}'");
    		if( $query )
    		{
    			echo 'Yorumunuz başarı bir şekilde eklendi..';
    		}
    		else
    		{
    			echo 'Bir sorun oluştu ve yorumunuz eklenemedi.';
    		}
    	}
    	else
    	{
    		echo 'Yorum alanı boş bırakılamaz.';
    	}
    	
    }
    bu fonksiyon iyi olmuş.

    Yine de bu tür şeylerle çok fazla uğraşmak istemiyorsan sana codeigniter'ı kullanmanı tavsiye ederim