Fragezeichen: Sicherheit mit PHP

Hallo Forum

Ich habe folgende Frage, die ich gerne mal den Profis hier im Forum stellen möchte:

Wie sieht es eigentlich mit dem Schutz vor ungewünschten Zugriffen (aller Art) im Zusammenhang mit Programmierung in PHP aus? Gibt es gewisse Todsünden (im Code oder sonst wo), die auf keinen Fall gemacht werden dürfen? Wie kann ich mich als Programmierer vor Schadenersatzforderung irgendwelcher Art schützen? Gib es Standards?

Wie seht Ihr das?

Danke für Eure Meinungen.

Fragezeichen

  1. Hallo Fragezeichen.

    Wie sieht es eigentlich mit dem Schutz vor ungewünschten Zugriffen (aller Art) im Zusammenhang mit Programmierung in PHP aus?

    Ich finde, dass das entsprechende Kapitel im PHP.net Handbuch einiges aussagt.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    Try it: Become an Opera Lover in 30 days
  2. Hi!

    Wie sieht es eigentlich mit dem Schutz vor ungewünschten Zugriffen (aller Art) im Zusammenhang mit Programmierung in PHP aus? Gibt es gewisse Todsünden (im Code oder sonst wo), die auf keinen Fall gemacht werden dürfen? Wie kann ich mich als Programmierer vor Schadenersatzforderung irgendwelcher Art schützen? Gib es Standards?

    Da gibt es einige, wie z.B. register_globals=On, keine Initialisierung von Variablen vor ihrer Verwendung, keine Überprüfung von User-Eingaben, SQL-Injections, etc.

    Für den Anfang sollten http://php-faq.de/ch/ch-security.html und http://www.php.net/security-note.php ganz interessant sein.

    Grüße,
    Fabian St.

    --
    Meine Website: http://fabis-site.net
    --> XHTML, CSS, PHP-Formmailer, Linux
    ---------------------
    fabi@erde ~# whatis spam
    spam: nothing appropriate
    ---------------------
    Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
  3. Hello,

    einer der schlimmsten Fehler ist wohl eine fehlende Translation eines vom User eingebbaren Dateipfades. Beliebtes Beispiel hierfür ist:

    Uafruf durch

    domain.tld/index.php?action=hallo_world.php

    in der index.php

    ...

    include ($_GET['action']);

    ...

    Da hilft dann auch register_globals = off nichts mehr.
    Es gibt dutzende von Spielarten für diese Lücke, die sich aber bei genauerer Betrachtung immer wieder auf diesen vereinfachten Fall reduzieren lassen.

    Auch wenn die Endung erst innerhalb des Scriptes angehängt wird, ist dies kein Schutz, da meistens die fopen als Wrapper für die Socket-Funktionen zugelassen ist, und es somit leicht möglich ist, dem Script jede beliebige PHP-Datei von einem externen Server unterzujubeln. Bevor hier jetzt jemand "blökt", dass diese dann ja schließlich auf dem externen Server geparst würde, soll er bitte nochmal nachdenken;-)) Danke.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hi Tom

      Danke für Deine Antwort.

      Ich hätte da nun eine Folgefrage:

      Kann das Problem auch dann auftauchen, wenn keine Datei eingebunden wird, sondern z.B. folgendes:

      domain.tld/index.php?action=template1

      ('template1' als Inhalt der Variable 'action' -> ist keine Datei)

      Gruss
      Fragezeichen

      Uafruf durch

      domain.tld/index.php?action=hallo_world.php

      in der index.php

      ...

      include ($_GET['action']);

      ...

      1. Hello,

        Hi Tom

        Danke für Deine Antwort.

        Ich hätte da nun eine Folgefrage:

        Kann das Problem auch dann auftauchen, wenn keine Datei eingebunden wird, sondern z.B. folgendes:

        domain.tld/index.php?action=template1

        ('template1' als Inhalt der Variable 'action' -> ist keine Datei)

        Es kommt doch darauf an, was Du dann mit $action (oder eben $_GET['action']) machst. Wenn Du das ungeprüft an eval() oder System() oder Exec() ... übergibst, ist es genauso eine Lücke, als wenn Du einen Pfad/Dateinamen ungeprüft an include() übergibst.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
  4. hi,

    Wie sieht es eigentlich mit dem Schutz vor ungewünschten Zugriffen (aller Art) im Zusammenhang mit Programmierung in PHP aus? Gibt es gewisse Todsünden (im Code oder sonst wo), die auf keinen Fall gemacht werden dürfen?

    wenn du darüber noch so gut wie gar nichts weißt - dann sollte sich die frage

    Wie kann ich mich als Programmierer vor Schadenersatzforderung irgendwelcher Art schützen?

    doch wohl noch gar nicht stellen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi wahsaga

      Wenn Du kein konstruktives Feedback liefern kannst oder willst, dann lass' es doch besser sein.

      Den anderen danke ich auf jeden Fall sehr für ihren Input.

      Gruss
      Fragezeichen