• 14-12-2018, 00:21:43
    #1
    Merhaba arkadaşlar,

    $_GET istekleri için nasıl güvenlik önlemleri alıyoruz bu konu hakkında fikirlerinizi almak istedim.

    Şahsen eğer id alıcaksam;

    $Deger = (int)$_GET["id"];

    $Deger = mysql_real_escape_string($Deger);

    en son da intval($Deger);

    şeklinde kontrol ediyorum.

    Sizce neler olmalı veya nasıl kontrollerden geçirmeliyiz, standartlar nelerdir ?
  • 14-12-2018, 00:23:51
    #2
    Üyeliği durduruldu
    Kod olarak değil ama öneride bulunayım.

    Yapılabilirse şifre talep edilebilir. Eğer şifre sizin sayfanızla eşleşirse get işlemi o zaman çalışsın mesela yapılamaz mı?
  • 14-12-2018, 00:27:01
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    filter_var
  • 14-12-2018, 00:28:04
    #4
    if(isset($_GET['id'])){
    $kullaniciid = htmlspecialchars(strip_tags($_GET['id']));
    $kullaniciid = str_replace("'","",$kullaniciid);
    $kullaniciid = str_replace("<","",$kullaniciid);
    $kullaniciid = str_replace(">","",$kullaniciid);
    $kullaniciid = str_replace(",","",$kullaniciid); }
  • 14-12-2018, 00:30:13
    #5
    Üyeliği durduruldu
    normal metin için

    trim(strip_tags(htmlspecialchars($degisken)))
    bu yeterli olacaktır.

    Bunun yanında aldıgınız $_GET degişkenindeki veriyi veritabanında kullanmıyorsanız sadece eşleştirme yapacaksanız filtreye bile gerek yoktur
    örnegin

    if(isset($_GET["ali"]) && $_GET["ali"] == 'odemesayfasi')
  • 14-12-2018, 00:31:38
    #6
    Güzel fikirler geliyor peki bunlar aşılamaz mı arkadaşlar en garanti çözümler sizce nelerdir?
  • 14-12-2018, 00:32:05
    #7
    Üyeliği durduruldu
    freguencey adlı üyeden alıntı: mesajı görüntüle
    Güzel fikirler geliyor peki bunlar aşılamaz mı arkadaşlar en garanti çözümler sizce nelerdir?
    Hiçbir sistem güvenli degildir
  • 14-12-2018, 00:34:26
    #8
    Solutions adlı üyeden alıntı: mesajı görüntüle
    Hiçbir sistem güvenli degildir
    Kesinlikle

    Ancak en iyi algoritma ile birçok açık kapatılabilir, standart veya standart dışı en garanti yolları bulmak beyin fırtınasıyla oluşur
  • 14-12-2018, 00:35:36
    #9
    Eğer id veritabanı işleminde kullanılacaksa özel olarak filitreleme yapmanıza gerek yok sadece pdo kullanmanız yeterli sizin için pdo halledecektir. Örnek bir kod;
    $query=$db->prepare("SELECT * FROM users WHERE id=?"); 
    // Önce sql kodumu hazırladım. 
    // Dışarıdan gelecek veriyi soru işareti olarak bıraktım
    $query->execute(array(
        $_GET["id"]
    ));
    // şimdi soru işareti yerine $_GET["id"] ile kullanıcıdan aldığımız veriyi koymasını söyledik.
    // Eğer birden fazla veri varsa birden fazla soru işareti kullanmak mümkün
    // Ya da soru işareti yerine bazı tanımlayıcılarda kullanılabilir.
    // Örneğin;
    $query=$db->prepare("SELECT * FROM users WHERE id=:id"); // şimdi :id diyerek nasıl kullanacağımızı belirttik.
    $query->execute(array(
        "id"=>$_GET["id"]
    ));