• 30-10-2010, 03:27:24
    #1
    Üyeliği durduruldu
    Zararlı kodları filtrelemek için bir çok güvenlik fonksiyonu var.
    Kullandığınız güvenlik fonksiyonunu yazarsanız, daha yetersiz bir fonksiyon kullananları bilgilendirmiş olursunuz.

    ve tabi sizinkinden daha iyi bir fonksiyon varsa bunuda farketmiş olursunuz

    benim gibi kararsızların da karar vermesine yardımcı olursunuz

    yazın yani
  • 30-10-2010, 03:58:09
    #2
    function temizle($girdi, $sql = false){
        $girdi = htmlentities($girdi, ENT_QUOTES);
        if(get_magic_quotes_gpc ()){
            $girdi = stripslashes ($girdi);
        }
        if ($sql)
        {
            $girdi = mysql_real_escape_string ($girdi);
        }
        $girdi = strip_tags($girdi);
        $girdi = str_replace("", "\n", $girdi);
        return $girdi;
    }
  • 30-10-2010, 05:02:17
    #3
    şimdi asıl olay veri tabanınızda yerine koyacağınız get ve post değerlerine bağlı

    eğer int olarak bir veri çekiyorsanız get ve post ile

    intval($_GET) her ne kadarda string değer de girilse sonucu 0 olacağı için düşünmeniz gerekmez injection yemezsiniz.
    eğer string bir değer geliyorsa mysql_real_escape_string i kullanırsanız zararlı kodlardan da arınırsınız .

    demek istediğim güvenlik olayı postlanan bilgiye değil sizin o bilgiyi ne tür şekilde kullanacağınıza bağlıdır.
  • 30-10-2010, 06:47:13
    #4
    Üyeliği durduruldu
    hmm hocam peki php nin işleyişine müdahe edilebilir mi ?
    örneğin,

    if(isset($_POST['isim']))=='yeniuye'){
    yeniuye();
    }

    gibi bir kullanımda,
    isim input'una şöyle bir değer girsek, çalışır mı ?

    $a) || empty($sgsd4){header: "location: hacked.html"}

    (bu örnekte syntax hatası oldu tabi ama olmayanı bulmak da zor olmasa gerek)

    yoksa güvenlik filtre fonksiyonları yalnızca veritabanı sorguları için mi kullanılıyor ?
  • 30-10-2010, 12:49:19
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    function clean_request($request, $is_numeric = false)
    {
    	if (is_numeric($request) || $is_numeric)
    		return !empty($request) ? (int) $request : 0;
    	else
    		return !empty($request) ? htmlspecialchars($request, ENT_QUOTES) : '';
    }
    Sayısal değer girildiyse (veya girilmesi gerekliyse) integer türüne dönüştürür.
    Yazı girildiyse, HTML'de kullanılan özel karakterleri HTML öğelerine dönüştürür. Böylece ekranda düzgün çıktı alırken, HTML olarak girilmiş yazılar, HTML kodu olarak ayıklanmaz.
    Değerlerboş ise; sayısal değerler için 0, yazılar için boş döner.
  • 30-10-2010, 13:28:31
    #6
    grafitus adlı üyeden alıntı: mesajı görüntüle
    function clean_request($request, $is_numeric = false)
    {
    	if (is_numeric($request) || $is_numeric)
    		return !empty($request) ? (int) $request : 0;
    	else
    		return !empty($request) ? htmlspecialchars($request, ENT_QUOTES) : '';
    }
    Sayısal değer girildiyse (veya girilmesi gerekliyse) integer türüne dönüştürür.
    Yazı girildiyse, HTML'de kullanılan özel karakterleri HTML öğelerine dönüştürür. Böylece ekranda düzgün çıktı alırken, HTML olarak girilmiş yazılar, HTML kodu olarak ayıklanmaz.
    Değerlerboş ise; sayısal değerler için 0, yazılar için boş döner.
    arkadaş doğru yazmış ben diğer notumda mysql ile ilgili yazmak istemiştim.