Sicheres php?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sicheres php?

    Hi
    Ich bin ziemlicher php Neuling und will mir ein kleines CMS zusammen basteln.
    Jetzt lese ich ständig man soll Daten die vom User kommen immer Prüfen.

    wäre das jetzt so richtig?

    Quellcode

    1. function check($getpost){
    2. $val = array(
    3. '/^[a-zA-Z -]+$/',
    4. '/^[0-9-]+$/'
    5. );
    6. if (isset($getpost)) {
    7. foreach ($val as $k => $v) {
    8. if (preg_match($v, $getpost)) {
    9. $raus = strip_tags($getpost) ;
    10. return $raus;
    11. break;
    12. }
    13. }
    14. }
    15. }
    16. $username = check($_POST["username"]);
    Alles anzeigen
  • Wo du das wohl gelesen hast ;)

    strip_tags ist schonmal ein Anfang, es schützt vor XSS (Cross-Site-Scripting) und ich würde das beibehalten. Hinzukommt, was d0nut angesprochen hat, man darf nie ungeprüfte Sachen an eine Datenbank weiterleiten. Es gibt in PHP mitterlweile (mehrere) Funktionen und Möglichkeiten das zu tun, je nach verwendeter DB. Ich weiß nicht genau ob dein RegExp alle Möglichkeiten für Injections filtert, nimm ansonsten einfach mysql_real_escape_string()
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Ich glaub das hatte ich von php-quake.net aufgeschnappt.
    Eigendlich is alles bis auf strip_tags() von dort. ^^
    Den hab ich weil der verhindern soll das Schadcode in Webalizer kommt ..oder so 8|
    Nur irgendwie wird überall eine andre Methode genannt um eingaben zu überprüfen.

    Also würde ich mit der Funktion alles abdecken?
    Oder behindern sich die einzelnen Funktionen gegenseitig irgendwie?

    Quellcode

    1. function check( $income )
    2. {
    3. if ( get_magic_quotes_gpc() )
    4. {
    5. $income = stripslashes( $income );
    6. }
    7. $income = htmlspecialchars( $income );
    8. $income = strip_tags($income);
    9. $income = mysql_real_escape_string($income);
    10. return $income;
    11. }
    Alles anzeigen


    Ist es schlimm wenn ich mysql_real_escape_string() auch auf Variablen anwende die ich gar nicht für Datenbank abfragen verwende?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Wub23 ()

  • htmlspecialchars und striptags haben eben wie gesagt nichts mit der Server-Sicherheit zu tun. Solltest du nicht auf alles anwenden.

    Ist es schlimm wenn ich mysql_real_escape_string() auch auf Variablen anwende die ich gar nicht für Datenbank abfragen verwende?

    Wann macht das denn Sinn? Gehen wir mal davon aus, du nutzt/besitzt gar keine MySQL Datenbank. Dann stehen die Funktionen auch nicht zur Verfügung.
    Es macht also keinen Sinn, die Funktion in einem Textbasiertem-Blog zu verwenden.