SQL injection verhindern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL injection verhindern

    Hallo ich habe mir für meine MySQL klasse eine Methode gebastelt durch die ich meine Post und Get Daten schicken will um SQL injections vorzubeugen und ich würde da gern mal wissen ob das so ausreicht bzw was man noch beachten sollte oder verbessern kann.

    Hier mal die Methode
    PHP-Code:
    public function dataString($data){
                if(
    is_array($data)){
                   if(
    is_numeric($data)){
                         for(
    $i=0$i<count($data); $i++){
                           
    $iv_data[$i] = intval($data[$i]);
                         }
                         
                         return 
    $iv_data;
                  }else{
                         for(
    $i=0$i<count($data);$i++){
                            
    $mres_data[$i] = mysql_real_escape_string($data[$i]); 
                         }
                         return 
    $mres_data;
                }
           
                }else{
                  if(
    is_numeric($data)){
                         
    $iv_data intval($data);
                          return 
    $iv_data;
                  }else{
                         
    $mres_data mysql_real_escape_string($data);
                            return 
    $mres_data;
                } 
                }
                
        } 
    mfg mo

  • #2
    Wozu? Es gibt bereits mysql_real_escape_string() das tut genau das, was erforderlich ist. Wozu das Rad neu erfinden?

    Aber wenn du schon objektorientiert programmierst, warum verwendest du dann die veraltete mysql-Extension, die gar nicht für OOP geeignet ist? Warum nicht mysqli oder PDO?

    Kommentar


    • #3
      Das ist Unsinn!

      z.B.: Wenn $data ein Array ist, dann kann is_numeric() nur fehlschlagen.
      Auch können Arrays mehr als nur 1 oder 2 Dimensionen haben.

      Im Prinzip versuchst du "magic_quotes" nach zu bauen, was aber (sogar) von den PHP Entwicklern mittlerweile als falsch erkannt wurde.

      Was machst du, wenn mal das DBMS gewechselt wird?
      Wieso versteifst du dich auf die veraltete und nicht mehr zur Standard Installation gehörige mysql Erweiterung?
      Wir werden alle sterben

      Kommentar


      • #4
        ich denke ich werde mich mal mit PDO und MySQli beschäftigen

        Kommentar


        • #5
          Zitat von mo78 Beitrag anzeigen
          ich denke ich werde mich mal mit PDO und MySQli beschäftigen
          Und am besten auch gleich mit Prepared Statements. Dann ersparst du dir nämlich das Escaping.

          Kommentar


          • #6
            Ja das ist der Plan und besten Dank für Deinen Konstruktiven Beitrag

            Kommentar

            Lädt...
            X