Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL-Injection verhindern?

Einklappen

Neue Werbung 2019

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

  • SQL-Injection verhindern?

    Wie im Titel steht möchte ich die Injection bei mir verhindern. Bei Google finde ich nur alte Themen wo meist mysql_real_escape_string() benutzt wird. Aber wie funktioniert das ganze dann bzw. geht die injection mit mysqli nicht oder wie verhindere ich sie da?

    mfg,

  • #2
    Aktuellster Thread zum Thema: http://www.php.de/php-einsteiger/113...tenbanken.html
    Verfolg auch die Links weiter, alles noch aktuell.
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      Stimmt das dann so?
      PHP-Code:
      $link mysqli_connect("****","*****","***","*****") or die("Error");
      $user mysqli_real_escape_string($link$_SESSION["username"]);
      $sqlad "SELECT ### FROM ### WHERE username LIKE '$user'"
      $db_ergad mysqli_query$link$sqlad ); 
      /e: Das heiß doch aber dann ich darf keinen namen mit " oder ' in Datenbank haben oder?

      Kommentar


      • #4
        Zitat von xWhiteFeel Beitrag anzeigen
        Stimmt das dann so?
        PHP-Code:
        []
        $sqlad "SELECT ### FROM ### WHERE username LIKE '$user'";
        [

        Jein. Da das vermutlich irgendwas mit einem Login zu tun hat ist LIKE Unsinn: der User muss schließlich genau den richtigen Namen angeben, nicht irgendwas mit Platzhaltern.

        Zitat von xWhiteFeel Beitrag anzeigen
        /e: Das heiß doch aber dann ich darf keinen namen mit " oder ' in Datenbank haben oder?
        Warum nicht? Im Query werden die ja entschärft und sind kein Problem mehr.

        Kommentar


        • #5
          Zitat von tk1234 Beitrag anzeigen
          Jein. Da das vermutlich irgendwas mit einem Login zu tun hat ist LIKE Unsinn: der User muss schließlich genau den richtigen Namen angeben, nicht irgendwas mit Platzhaltern.
          aber vom prinzip her stimmt das so oder?

          Kommentar


          • #6
            Zitat von xWhiteFeel Beitrag anzeigen
            aber vom prinzip her stimmt das so oder?
            Ja.

            Kommentar


            • #7
              ok. Vielen Dank!

              mfg,

              Kommentar


              • #8
                Zitat von xWhiteFeel Beitrag anzeigen
                Stimmt das dann so?
                PHP-Code:
                $user mysqli_real_escape_string($link$_SESSION["username"]);
                $sqlad "SELECT ### FROM ### WHERE username LIKE '$user'"
                $db_ergad mysqli_query$link$sqlad ); 
                Behalte in dem Fall nur im Hinterkopf das du die Variable $user veränderst, also daran denken, falls du diese "später" nochmals irgendwo ausgeben willst etc.. (Hier hättest du dann eh noch $_SESSION["username"] dafür).
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X