Lennart: Gibt es Sicherheitslücken bei PHP ohne MySQL?

Hallo,

ich bin - zugegeben - sehr sehr neu im Thema PHP und MySQL. Ich habe schon von verschiedenen Sicherheitslücken gehört, aber jetzt eine Frage, auf die ich bei Google, Forumsuche etc. keine Antwort finde.

Die wäre: Gibt es akute Sicherheitslücken bei PHP, wenn ich keine Schnittstelle zu MySQL, SQL oder Oracle-Datenbanken habe? Das heißt: Sollte ich, wenn ich mit PHP "nur" Seiten untereinander verbinde und keine Input-Felder oder Formulare benutze, Angst haben, dass die Seite gehackt wird, und Content massiv verändert wird?

Zugegeben keine schwere Frage, aber ich finde einfach keine Antwort. Vielen Dank schonmal für die Antwort!

Grüße
Lennart

  1. Hi,

    Gibt es akute Sicherheitslücken bei PHP, wenn ich keine Schnittstelle zu MySQL, SQL oder Oracle-Datenbanken habe?

    ja: Dich.

    Das heißt: Sollte ich, wenn ich mit PHP "nur" Seiten untereinander verbinde und keine Input-Felder oder Formulare benutze, Angst haben, dass die Seite gehackt wird, und Content massiv verändert wird?

    Wenn Du *wirklich* nur Seiten untereinander verbindest, dann kommt in Deinem Code kein PHP vor. Da Du nach PHP fragst, machst Du offenbar etwas damit - dabei können Dir Fehler unterlaufen. Diese Fehler können zu einer Lücke führen.

    Zugegeben keine schwere Frage, aber ich finde einfach keine Antwort.

    Vermutlich kennt Google Dich nicht gut genug, um Dir Dich als Fehlerquelle zu melden.

    Vielen Dank schonmal für die Antwort!

    Lücken, die auf der puren Existenz von PHP auf dem Server beruhen, sind extrem selten und oft genug auch schnell nach ihrer Entdeckung gefixt[1]. Die meisten Lücken entstehen dadurch, dass man unachtsam programmiert.

    Cheatah

    [1] Die Ausnahme sind Konfigurationsmöglichkeiten wie register_globals. Diese gibt es seit Ewigkeiten, und erst mit PHP 6 wird sie gefixt sein.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Moin Moin!

    Gibt es akute Sicherheitslücken bei PHP

    Geh davon aus, dass es sie gibt, so lange keiner das Gegenteil beweisen kann.

    Das hat nur sehr, sehr wenig mit PHP zu tun. PHP ist ein komplexes Stück Software, und selbst mit sorgfältigstem Auditing (das meines Wissens bislang nicht erfolgt ist) kann man Sicherheitslücken nicht komplett ausschließen. Dazu kommt, dass PHP nicht alleine da steht, sondern in eine Umgebung aus Betriebssystem und typischerweise Webserver eingebettet ist. Das öffnet weitere mögliche Sicherheitslücken. Und die Sicherheit von PHP hängt unter anderem von der Konfiguration von PHP, Webserver und Betriebssystem ab, so dass auch die Sicherheit einer konkreten Installation zu beurteilen wäre.

    Auf diesen großen Haufen, dessen Sicherheit niemand garantieren kann und will, kommt dann noch Deine eigene Software, die noch einmal die selben Probleme hat: Fehlendes oder unvollständiges Auditing, Konfigurierbarkeit, Abhängigkeit von anderer Software und der Umgebung.

    Du kannst nur dafür sorgen, dass angefangen bei der Hardware bis hoch zu Deinem Script alles dafür getan wird, Sicherheitslücken zu vermeiden und bei möglichen Einbrüchen den anrichtbaren Schaden zu reduzieren.

    Möglichst wenig Rechte, Einschränkungen von Speicher und CPU-Zeit, eine möglichst eingeschränkte Umgebung, möglichst wenig installierte Software, möglichst wenig aktive Software, zügiges Einspielen aller Sicherheitspatches und ein ausreichend weit in die Vergangenheit reichendes, verifiziertes Backup sind einige der Techniken, um die Umgebung für deine Software möglichst sicher zu machen.

    Deine Software selbst sollte extrem paranoid gegenüber allen Daten sein, die aus dem Netz, von der Kommandozeile, und aus dem Environment kommen. Sie sollte alle Eingaben validieren, im Zweifel die Arbeit sofort verweigern, und im Zweifel lieber Whitelists statt Blacklists benutzen. Dazu kommen Selbstverständlichkeiten wie korrektes Escaping und Unescaping, wo immer das notwendig ist. Natürlich werden keine Benutzereingaben ungeprüft an andere Systeme weiter gereicht, insbesondere ist es nicht möglich, über das Netz Dateien an beliebiger Stelle anzulegen, zu überschreiben oder auch nur zu lesen, schon gar nicht ist es möglich, beliebige Programme aufzurufen. Auch diese Liste ist natürlich nicht vollständig.

    Sicherheit ist kein Zustand, sondern ein Prozess.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Sicherheit ist kein Zustand, sondern ein Prozess.

      Hi. Danke! Das hat mir ersteinmal gut geholfen!

  3. Als Ergänzung:

    Sollte ich, wenn ich mit PHP "nur" Seiten untereinander verbinde und keine Input-Felder oder Formulare benutze, ...

    Ob Du Inputfelder oder Formulare benutzt ist irrelevant. Wichtig ist, daß dein script keine fremden Daten (ungeprüft) verarbeitet, die vorhanden sein könnten, auch ohne Formular auf deiner Seite. Je nach Serverkonfiguration könnte jede Variable schon Daten enthalten und muß ggf. initialisiert werden.

    Ein weiterer möglicher Fallstrick, ganz ohne Datenbank, sind Email Header Injection, wobei das auch unter "keine fremden Daten (ungeprüft) verarbeitet" fällt.