Michi: Vulnerability-Check-Software für PHP?

Hallo PHP-Gemeinde,

gibt es relativ einfach zugängliche Software zur Überprüfung von PHP-Skripten auf Sicherheitslücken bzw. Versions-Konflikt-Codestellen?

Kann man zwar natürlich auch alles selber checken, dabei aber auch leicht mal was übersehen. ;)

Gruß Michi

  1. Hallo Freunde des gehobenen Forumsgenusses,

    gibt es relativ einfach zugängliche Software zur Überprüfung von PHP-Skripten auf Sicherheitslücken [...]

    Wie soll das funktionieren? Ich glaube kaum, dass es möglich ist
    eine solche Software zu schreiben. Ich würde da einen anderen Ansatz
    verwenden, von dem ich gelesen habe und den ich sehr interessant finde:

    Man schreibt für jede Methode / Klasse einer Software eine
    Software, die genau diese Methode / Klasse testet, und zwar
    _bevor_ man die eigentliche Software schreibt.

    Ich hab das allerdings noch nie selbst ausprobiert.

    Gruß
    Alexander Brock

    1. Jou, das nennt sich denn test-driven-development (TDD). Ich versuche mir das gerade als Arbeitsweise anzueignen, und der erste Eindruck, den ich davon habe, ist ein sehr guter. Man entwickelt besseren Code, denke ich, und hat während der Entwicklung eines Projekts ein ständig wachsendes Netz von automatisierten Tests, die a) ein gewisses "Vertrauen" in den Code gewährleisten und b) sehr schnell zur Problembehebung führen.

      Es gibt dazu ein Buch von Kent Beck (Test-Driven-Development By Example), welches ich nur empfehlen kann.

      Allerdings ist die Software dann trotzdem nur so "sicher", wie es die Tests abdecken, die man vorher definiert.

      Gruß,
      Feng

    2. Hi Alexander,

      gibt es relativ einfach zugängliche Software zur Überprüfung von PHP-Skripten auf Sicherheitslücken [...]

      Wie soll das funktionieren? Ich glaube kaum, dass es möglich ist
      eine solche Software zu schreiben.

      Über eine Kombination aus Standard-Brutforce-Attacken und einem heuristischen Verfahren (ähnlich wie bei Virenscannern), z.B. wobei dem ganzen natürlich Grenzen aufgrund der riesigen kombinatorischen Möglichkeiten gesetzt sind - naja, WIE das genau funktionieren soll, kann ich natürlich jetzt auch nicht genau sagen, aber grundsätzlich sehe ich - außer Menge Arbeit natürlich - nichts, was gegen die Umsetzbarkeit so einer Idee spricht. ;)

      Aber vergessene und zugleich riskante Variableninitialisierungen sollten sich doch z.B. erkennen lassen. Na ok, aber wenns so was nicht gibt, kann man auch nichts machen (außer, so was selber anzupeilen - is vielleicht mal eine Überlegung wert...?). ;)

      Gruß Michi

      1. Hallo Freunde des gehobenen Forumsgenusses,

        Aber vergessene und zugleich riskante Variableninitialisierungen sollten sich doch z.B. erkennen lassen.

        Wenn man vergisst, Variablen zu initialisieren bekommt man Notices
        um die Ohren gehauen (ich fände es allerdings besser, sofort abzubrechen wie in Java).

        Gruß
        Alexander Brock