• 20-07-2018, 06:53:11
    #1
    Arkadaşlar Merhaba,

    Php form güvenliği için böyle bir fonksiyon işe yarar mı sizce ihtiyacların tamamını görür mü yoksa yinede php htmlspecial fonksiyonu vs kullanılmalı mı?

    function guvenlik($veri) {
    $veri = str_replace("ə","ə",$veri);
    $veri = str_replace("&601;","ə",$veri);
    $veri = str_replace("&091;","",$veri);
    $veri = str_replace("&093;","",$veri);
    $veri = str_replace("&8200;","",$veri);
    $veri = str_replace("&8242;","",$veri);
    $veri = str_replace("&8217;","",$veri);
    $veri = str_replace("”","",$veri);
    $veri = str_replace("“","",$veri);
    $veri = str_replace("’","",$veri);
    $veri = str_replace("…","..",$veri);
    $veri = str_replace("&8230;","..",$veri);
    $veri = str_replace("‘","",$veri);
    $veri= str_replace ("‘"," ",$veri); 
    $veri= str_replace ("’"," ",$veri);
    $veri= str_replace ("“","",$veri);
    $veri= str_replace ("”","",$veri);
    $veri= str_replace ("&8211;","",$veri);
    $veri= str_replace ("--","",$veri); 
    $veri= str_replace ("Chr(33,$veri);","",$veri); 
    $veri= str_replace ("Chr(34,$veri);","",$veri); 
    $veri= str_replace ("Chr(35,$veri);","",$veri); 
    $veri= str_replace ("Chr(36,$veri);","",$veri); 
    $veri= str_replace ("Chr(37,$veri);","",$veri); 
    $veri= str_replace ("Chr(38,$veri);","",$veri); 
    $veri= str_replace ("Chr(39,$veri);","",$veri); 
    $veri= str_replace ("Chr(40,$veri);","",$veri); 
    $veri= str_replace ("Chr(41,$veri);","",$veri); 
    $veri= str_replace ("Chr(42,$veri);","",$veri); 
    $veri= str_replace ("Chr(43,$veri);","",$veri); 
    $veri= str_replace ("Chr(44,$veri);","",$veri); 
    $veri= str_replace ("Chr(47,$veri);","",$veri); 
    $veri= str_replace ("Chr(58,$veri);","",$veri); 
    $veri= str_replace ("Chr(59,$veri);","",$veri); 
    $veri= str_replace ("Chr(60,$veri);","",$veri); 
    $veri= str_replace ("Chr(61,$veri);","",$veri); 
    $veri= str_replace ("Chr(62,$veri);","",$veri); 
    $veri= str_replace ("Chr(63,$veri);","",$veri); 
    $veri= str_replace ("Chr(91,$veri);","",$veri); 
    $veri= str_replace ("Chr(92,$veri);","",$veri); 
    $veri= str_replace ("Chr(93,$veri);","",$veri);
    $veri= str_replace ("Chr(94,$veri);","",$veri); 
    $veri= str_replace ("Chr(96,$veri);","",$veri); 
    $veri= str_replace ("Chr(123,$veri);","",$veri);
    $veri= str_replace ("select","",$veri); 
    $veri= str_replace ("join","",$veri); 
    $veri= str_replace ("where","whe-re",$veri); 
    $veri= str_replace ("insert","inser-t",$veri); 
    $veri= str_replace ("delete","&#68ELETE",$veri); 
    $veri= str_replace("union", "uni-on",$veri);
    $veri= str_replace ("update","updat-e",$veri); 
    $veri= str_replace ("like ","li-ke",$veri); 
    $veri= str_replace ("drop","dro-p",$veri); 
    $veri= str_replace ("create","creat-e",$veri); 
    $veri= str_replace ("modify","",$veri); 
    $veri= str_replace ("rename","",$veri); 
    $veri= str_replace ("alter","",$veri); 
    $veri= str_replace ("cast","cas-t",$veri); 
    $veri= str_replace (" And ","",$veri); 
    $veri= str_replace ("union","",$veri); 
    $veri= str_replace ("xp_","",$veri); 
    $veri= str_replace ("<SCRIPT>","",$veri); 
    $veri= str_replace ("<META","",$veri); 
    $veri= str_replace(" or ","",$veri); 
    $veri= str_replace("'or'","",$veri);
    $veri = str_replace ("'","&#39",$veri);
    return $veri;
    }
  • 20-07-2018, 07:18:10
    #2
    Bu işine doğru düzgün yaramaz neden diyeceksin adam bypass eder sadece bunu kullanırsan örnk:
    <script>alert('')</script>
    yerine
    <Script>alert('Ebubekir Bastama')</Script>
    yazar ve senin sisteminden geçer
  • 20-07-2018, 07:57:14
    #3
    Önerdiğiniz bir fonsiyon listesi var mı acaba?


    ebubekirbastama adlı üyeden alıntı: mesajı görüntüle
    Bu işine doğru düzgün yaramaz neden diyeceksin adam bypass eder sadece bunu kullanırsan örnk:
    <script>alert('')</script>
    yerine
    <Script>alert('Ebubekir Bastama')</Script>
    yazar ve senin sisteminden geçer
  • 20-07-2018, 09:48:58
    #4
    Sana tavsiyem php'nin genel fonsiyonlarını kullan ve en son siteyi yazdıktan sonra "Acunetix" vb. scanner ile bir tarat
  • 20-07-2018, 12:50:01
    #5
    PDO altyapısını kullanın,
    HTML kodlarını temizlemek için fonksiyonlar var.
  • 20-07-2018, 14:05:06
    #6
    xss açıkları için önerileriniz nelerdir ?
    emreires adlı üyeden alıntı: mesajı görüntüle
    PDO altyapısını kullanın,
    HTML kodlarını temizlemek için fonksiyonlar var.
  • 20-07-2018, 16:01:52
    #7
    PDO altyapısında zaten bir çok açıktan korunursunuz.

    Fakat benim gibi mükemmeliyetçi ve her konuda panik & temkinli biri iseniz, mysql real escape string ile pdo yapısını aynı anda kullanabilirsiniz
  • 28-10-2018, 00:36:18
    #8
    emreires adlı üyeden alıntı: mesajı görüntüle
    PDO altyapısında zaten bir çok açıktan korunursunuz.

    Fakat benim gibi mükemmeliyetçi ve her konuda panik & temkinli biri iseniz, mysql real escape string ile pdo yapısını aynı anda kullanabilirsiniz
    php öğrenmeye çalışıyorum.

    herkes güvenlikle ilgil pdo kullan demiş. ben prosedürel/yordamsal olarak da öğrenmeye çalışıyorum.

    $word = mysqli_real_escape_string($conn, $_POST['word']);
    $class = mysqli_real_escape_string($conn, $_POST['class']);
    $meaning = mysqli_real_escape_string($conn, $_POST['meaning']);
    $example = mysqli_real_escape_string($conn, $_POST['example']);
    
    $sql = "INSERT INTO words (id, word, class, meaning, example)
    VALUES ('', '".$word."', '".$class."', '".$meaning."', '".$example."')";
    bu örnekteki kullanımı doğrumudur?

    ayrıca

    htmlspecialchars yabancı forumlarda sadece çıkış için kullanın yazıyor ama php resmi sitesinde htmlspecialchars_decode var

    veri girişi ve çıkışı için kullanılabilir olduğu anlamına mı gelir?
  • 29-10-2018, 18:36:13
    #9
    Pdo alt yapısını kullanıyorum verileri ham olarak değil php fonksiyonlarından geçirerek taşıyorum + olarak get bölümünde bu şekilde güvenlik fonksiyonu + diğer dediklerimi uyguluyorum sorun olmuyor.
    Pdo çoğunu kendisi engelliyor zaten
    function guvenlik($id)
    {
        $GelenId = trim(stripslashes($id));
        $engelle = array("'", '"', "sql", "SQL", "query", "QUERY", "select", "SELECT", "union", "UNION", "order", "ORDER", "by", "BY", "#", "<script>", "<SCRIPT>");
        $id = str_replace($engelle, "", $GelenId);
        return $id;
    }