[PHP] Sicherheit bei "Update.php"

Dieses Thema im Forum "Webentwicklung" wurde erstellt von thug-life, 13. April 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 13. April 2010
    Sicherheit bei "Update.php"

    Hallo Leute, ich habe mir eine update.php erstellt jedoch kenn ich mich mit PHP nicht
    so gut aus und würde deswegen bitten ob ihr mal drüber gucken könntet und Sicherheitsrelevante
    Fehler erkennt:

    update.php
    PHP:
    <? php

    include ( "dbconnect.php" );                        

    if (isset(
    $_POST [ 'speichern' ])){                
        
    $fx  'mysql_real_escape_string' ;
        
        
    $count  count ( $_POST [ 'Anwendung' ]);
        for (
    $i  0 $i  < $count ; $i ++){            
            
            
    $query  '
                UPDATE App_LT3 
                SET 
                    inm = "' 
    $fx ( $_POST [ 'INM' ][ $i ]) .  '", 
                    prm = "' 
    $fx ( $_POST [ 'PRM' ][ $i ]) .  '", 
                    chm = "' 
    $fx ( $_POST [ 'CHM' ][ $i ]) .  '", 
                    risk = "' 
    $fx ( $_POST [ 'RISK' ][ $i ]) .  '", 
                    do_order = "' 
    $fx ( $_POST [ 'DO_ORDER' ][ $i ]) .  '", 
                    ba = "' 
    $fx ( $_POST [ 'BA' ][ $i ]) .  '" 
                WHERE Anwendung = "' 
    $fx ( $_POST [ 'Anwendung' ][ $i ]) .  '"
            '
    ;

            
    $update  mysql_query ( $query );
        
        }
        
        if (!
    $update ){                                 
            die (
    'Fehler: ' . mysql_error ());
        }
    }  

        echo 
    '<center> <font color="white"> 
        
        <br><br>
        
        Sie werden in 5 Sekunden weitergeleitet ... </font></center>'
    ;
        
    ?> 

    <head><meta http-equiv="refresh" content="5;iframe.php"></head>    
    Folgendes hat mit ein Kollege schon verraten, jedoch ist die Internetverbindung abgebrochen und er konnte mir dann nicht mehr weiterhelfen:

    Code:
    Die Daten werden ohne Prüfung übernommen. Damit könnte jemand, der Datei Daten entsprechend Aufbereitet, DB-Aufrufe tätigen, die nicht nur die Datenbank beschädigen können.
    Ich bedanke mich schonmal !
     
  2. 13. April 2010
    AW: Sicherheit bei "Update.php"

    $fx = 'mysql_real_escape_string' ; <-

    Das geht?
     
  3. 13. April 2010
    AW: Sicherheit bei "Update.php"

    ja das stammt von mir -> is für schreibfaule

    it, alle daten werden zuvor entschärft.
     
  4. 13. April 2010
    AW: Sicherheit bei "Update.php"

    Also ist das safe, kann ich das so einsetzten ?
    Danke
     
  5. 13. April 2010
    AW: Sicherheit bei "Update.php"

    jep das kannst du ohne bedenken so verwenden.
     
  6. 13. April 2010
    AW: Sicherheit bei "Update.php"

    Wärst du vielleicht noch so net und könntest mir kurz erklären wo es "entschärft" wird,
    möcht ja nicht dumm sterben
    Danke nochmals !
     
  7. 13. April 2010
    AW: Sicherheit bei "Update.php"

    PHP:
    $fx  'mysql_real_escape_string' ;
    da wird die funktion "mysql_real_escape_string" in eine variable gespeichert. das dient im grunde nur dazu, anstatt jedesmal "mysql_real_escape_string()" einfach nur "$fx()" zu schreiben.

    PHP:
    $query  '
        UPDATE App_LT3 
        SET 
            inm = "' 
    $fx ( $_POST [ 'INM' ][ $i ]) .  '", 
            prm = "' 
    $fx ( $_POST [ 'PRM' ][ $i ]) .  '", 
            chm = "' 
    $fx ( $_POST [ 'CHM' ][ $i ]) .  '", 
            risk = "' 
    $fx ( $_POST [ 'RISK' ][ $i ]) .  '", 
            do_order = "' 
    $fx ( $_POST [ 'DO_ORDER' ][ $i ]) .  '", 
            ba = "' 
    $fx ( $_POST [ 'BA' ][ $i ]) .  '" 
        WHERE Anwendung = "' 
    $fx ( $_POST [ 'Anwendung' ][ $i ]) .  '"
    '
    und wie du sehen kannst wird jede variable hier mit "$fx()" entschärft.

    falls es dir hilft, in "echt" sieht das ganze so aus:
    PHP:
    $query  '
        UPDATE App_LT3 
        SET 
            inm = "' 
    mysql_real_escape_string ( $_POST [ 'INM' ][ $i ]) .  '", 
            prm = "' 
    mysql_real_escape_string ( $_POST [ 'PRM' ][ $i ]) .  '", 
            chm = "' 
    mysql_real_escape_string ( $_POST [ 'CHM' ][ $i ]) .  '", 
            risk = "' 
    mysql_real_escape_string ( $_POST [ 'RISK' ][ $i ]) .  '", 
            do_order = "' 
    mysql_real_escape_string ( $_POST [ 'DO_ORDER' ][ $i ]) .  '", 
            ba = "' 
    mysql_real_escape_string ( $_POST [ 'BA' ][ $i ]) .  '" 
        WHERE Anwendung = "' 
    mysql_real_escape_string ( $_POST [ 'Anwendung' ][ $i ]) .  '"
    '
     
  8. 13. April 2010
    AW: Sicherheit bei "Update.php"

    dat check ich net, wieso geht das? PHP kann doch net einfach aus zwei Strings machen was es will... seit welcher Version geht das?
     
  9. 13. April 2010
    AW: Sicherheit bei "Update.php"

    das nennt man "variable funktion" und das geht seit php4
    PHP: Variable functions - Manual

    //so verwendet man im übrigen auch lambda-funktionen
    PHP:
    $foo  = function() { print  'hallo welt' ; };
    $foo ();  //hallo welt
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.