Mark: Werte aus Formulare formatieren

Hallo Ihrs,

Wie bearbeite ich Daten aus Formularen, bzw. eigentlich alles was innerhalb eines PHP-Scripts für den User sichtbar ist, sodass da keiner mehr eigene Scripte ausführen kann oder sonst irgendwelchen Blödsinn auf meiner Seite macht?

Ich habe mir bisher folgende Funktion zusammengebastelt:

function eingabe_format($wert)
         {
         $wert=strip_tags($wert);// ausreichend??
         return $wert;
   }

Anmerkung; Soll in eine MySQL-DB, ein Link zu dem Thema Sicherheit/Formatierungen von Eingaben wäre auch klasse.

Gruss, Mark

  1. Hallo,
    der wichtigste Befehl:
    $var = htmlentities($var);
    Sonderzeichen (ä, <, > Ü) werden in den HTML Code gewandelt, HTML Code etc. wird verhindert

    Und dann noch nl2br()

    Auch noch sinvoll  stripslashes()

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  2. Hallo,

    Wie bearbeite ich Daten aus Formularen, bzw. eigentlich alles was innerhalb eines PHP-Scripts für den User sichtbar ist, sodass da keiner mehr eigene Scripte ausführen kann oder sonst irgendwelchen Blödsinn auf meiner Seite macht?

    strip_tags() ist schonmal nicht schlecht.

    Danach gleich noch alle spitzen Klammern ersetzen:
    htmlspecialchars() - oder htmlentities(), wenn Du willst.

    Boese Zeichen entfernen: \0, grundsaetzlich alle
    Zeichen unter dezimal 32.

    Anmerkung; Soll in eine MySQL-DB, ein Link zu dem Thema Sicherheit/Formatierungen von Eingaben wäre auch klasse.

    mysql_escape_string()

    Lies auch die dclp-FAQ:
    Wie unterscheide ich böse Variablen von guten?
    http://www.dclp-faq.de/q/q-security-variablen.html
    Prüfe importierte Parameter. Traue niemandem
    http://www.dclp-faq.de/q/q-sicherheit-parameter.html
    und den Rest des Kapitels "Sicherheit".

    Ansonsten:
    http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=Tom+mysql_escape_string&umlaute=on&feld=alle&index_5=on&index_6=on&hits=100

    ;-)

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Hallo Thomas, danke!

      ...

      Boese Zeichen entfernen: \0, grundsaetzlich alle
      Zeichen unter dezimal 32.

      ...

      Habe mir jetzt alles durchgelesen, nur zu obigem kann ich nichts finden und kann dem auch nicht folgen?! :(

      Gruss, Mark

      1. Hallo,

        Boese Zeichen entfernen: \0, grundsaetzlich alle
        Zeichen unter dezimal 32.

        Habe mir jetzt alles durchgelesen, nur zu obigem kann ich nichts finden und kann dem auch nicht folgen?! :(

        Die ASCII-Zeichen 0 bis 31 sind Sonderzeichen (sogenannte
        Steuerzeichen). Was sie bedeuten, siehe:
        http://www.asciitable.com/ascii-full.gif

        Ich weiss nicht, ob das Problem wirklich praxisrelevant ist
        (z.B. ob man - und sei es auch nur mit speziell boeser
        Software - ueberhaupt solche Zeichen via HTTP uebermitteln
        kann), oder ob es ein rein theoretisches Problem ist.

        Jedenfalls habe ich mal irgendwo gelesen, dass gewisse
        Programme (z.B. sendmail) mit einem Null-Byte (d.h. ASCII 0)
        aus der Fassung gebracht werden koennen, und dass man
        das Nullbyte deshalb aus Strings entfernen sollte.

        Das kann man z.B. mit str_replace() oder anderen String-Funktionen.
        http://www.php.net/manual/de/function.str-replace.php
        $sauberstring=str_replace("\0","",$schmutzigstring);

        Diese Sonderzeichen bis Dezimal 31 kann man z.B. mit
        mit chr() erzeugen der hexadezimalen oder oktalen
        Schreibweise codieren.
        Dezimal 13  = hexadezimal 0D = oktal 15
        chr(13)       "\x0D"           "\15"

        http://www.php.net/manual/de/language.types.string.php

        Ich wuerde alle Zeichen von dezimal 0 bis 31 mit Ausnahme von
        10 und 13 (Zeilenumbrueche) entfernen.

        http://www.tiptom.ch/homepage/faq.html?q=zeilenumbruch

        Gruesse,

        Thomas

        --
        Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
        Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
        Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/