Sicherheit: Bitte um Bewertung/Hinweise zu einem Script

  • Hallo liebe Experten.

    Habe versucht, mich mit der (zumindest standardmäßigen) Sicherheit in PHP zu beschäftigen.
    Würde dazu gerne mal ein paar Meinungen/Ratschläge hören. Habe als Test ein kleines Gästebuch geschrieben. Die Einträge werden folgendermaßen vor dem Übernehmen in die Datenbank (mysql) bearbeitet:


    Das Ganze bei register_globals=off und magic_quotes=off

    Wäre das an Sicherheit ausreichend?
    Wie sieht es zum Beispiel mit dieser Zeile aus:

    Code
    $text = strip_tags($text, '<a>');


    Ich erlaube dem Nutzer ja praktisch, <a> Tags im Post zu verwenden. Angenommen, ein User versteckt in diesem Tag böses Js als Attribut. Würde strip_tag diesen Entfernen oder ignorieren?

    Was gibt es noch zu beachten (abgesehen von dem include, unter realen Bedingungen käme das von woanders)?


    Danke euch für Antworten und Anregungen,
    Jojo


  • Als Schutz vor Spammern könnte man noch einen Zufälligen Sicherheitscode generieren lassen, und diesen jedesmal vor Posten eines Beitrags ins Gästebuch abfragen lassen.

  • Also deine Fragen zu strip-tags werde n auf dem Link beantwortet, ich würde dir aber eher zu htmlspecialchars raten.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Zitat von K.Y.L.T.

    Also deine Fragen zu strip-tags werde n auf dem Link beantwortet, ich würde dir aber eher zu htmlspecialchars raten.

    Würde also nur BBcode bleiben, um z.Bsp. das Posten von Links zu erlauben.
    Ansonsten macht es doch eigentlich keinen Unterschied, ob man strip_tags oder htmlspecialchars verwendet, oder? "Vernichtet" doch beides recht efektiv jeden Versuch, Code in die Datenbank einzuschleusen.

    Spacefish
    Is schon klar. Das Ganze hat jetzt auch nicht den Anspruch, ein tolles Gästebuch zu werden. Ist eher zur Übung zwecks Datenbanksicherheit. Übrigens halte ich die Methode, Sessions zu verwenden, für besser als diese Captchas. Kaum ein Bot meldet sich jedesmal wieder neu über die Indexseite an und gibt auf. Trotzdem Danke.


  • jojo hat recht mit dem bbcode

    Code
    <a onlick="for(var i =0; i<1000 ; i++) alert('bitte click mich');">hier gehts weiter</a>

    ansonsten noch ein captcha gegen den spam
    deien mail prüfung läst
    lamerATaol.de; BCC: spamATsadasd.de, ganzeATviele.do;
    zu.

    dann noch sicher kein mysql_real_escape genutzt.... womit ich auch noch niedliche sql injections machen kann

  • Zitat von GreenRover


    deien mail prüfung läst
    lamerATaol.de; BCC: spamATsadasd.de, ganzeATviele.do;
    zu.


    Jaja, die ersten Gehversuche mit RegEx :roll:
    Man verzeihe mir :wink:
    Funktioniert addslashes() nicht ähnlich wie mysql_real_escape_string()?
    Das maskiert php-relevante Zeichen doch genauso, oder etwa nicht?
    Danke schonmal für die Mühe, den RegEx zu testen :D