Korrekte und sichere Ausgabe?

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

  • Korrekte und sichere Ausgabe?

    Hallo Leute,

    ich wollte mich einfach mal vergewissern ob ich die Funktion mysql_real_escape_string bei der ausgabe meiner Daten von der Datenbank richtig verwende?! Oder ist es möglich sie einfach zu umgehen...

    PHP-Code:

    <?php
    include "connect.php";

    $query "SELECT id, vname, nname, nickname, strase, ort FROM daten WHERE id = '1'";
    $sql mysql_query($query);

    while (
    $ds mysql_fetch_object($sql)){
            
    $vname $ds -> vname;
            
    $nname $ds -> nname;
            
    $nickname $ds -> nickname;
            
    $strase $ds -> strase;
            
    $ort $ds -> ort;
            
            
    $vname         mysql_real_escape_string($vname);
            
    $nname         mysql_real_escape_string($nname);
            
    $nickname     mysql_real_escape_string($nickname);
            
    $strase     mysql_real_escape_string($strase);
            
    $ort         mysql_real_escape_string($ort);
            
            echo 
    $vname," "$nname," "$nickname," "$strase," "$ort
        }
        
    mysql_close($dz);
        
    ?>

  • #2
    Re: Korrekte und sichere Ausgabe?

    An der Stelle ist sie vollkommen bloedsinnig eingesetzt.

    Sie ist dafuer da, Daten zu behandeln, bevor sie in eine MySQL-Query eingesetzt werden.

    Zur Absicherung der Ausgabe von Daten in HTML ist htmlspecialchars da.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      OKeay da es ja auch eine Funktion ist könnte ich es doch ganz einfach in meinem Script so tauschen oder?


      ALso von
      PHP-Code:
      $vname         mysql_real_escape_string($vname); 

      nach

      PHP-Code:
      $vname         htmlspecialchars($vname); 

      und somit währe es doch dann sicherer oder?[

      Kommentar


      • #4
        Re: Korrekte und sichere Ausgabe?

        Sicherheit ist das eine, Eleganz noch was anderes.
        PHP-Code:
        <?php
        include 'connect.php';

        // id ist eine numerische Spalte? Sollte sie jedenfalls sein.
        // strase solltest du umbenennen in strasse.
        // Eine Tabelle sollte niemals daten heißen!
        $sql 'SELECT id, vname, nname, nickname, strasse, ort 
                FROM users 
                WHERE id = 1'
        ;

        // Variablen sollten sinnvoll benannt sein.
        $result mysql_query($sql) or die(mysql_error());

        while (
        $row mysql_fetch_object($result)){
            echo 
        htmlspecialchars(
                
        $row->vname 
                
        .' '$row->nname 
                
        .' '$row->nickname 
                
        .' '$row->strasse 
                
        .' '$row->ort
            
        );
        }

        // Hier kein mysql_close(), denn da der Verbindungsaufbau
        // in connect.php geschieht, weißt du hier eigentlich gar nicht, 
        // wie das DB-Handle heißt und PHP schließt sowieso alle
        // Verbindungen am Ende eines Scripts.

        ?>
        Und dann wäre da noch der Sprachmix Englisch/Deutsch ...
        Zuletzt geändert von onemorenerd; 04.02.2009, 07:46.

        Kommentar

        Lädt...
        X