PHP-Script angezeigt statt geparst?

Hallo Profis,

wie kann man sicherstellen, daß ein PHP-Script immer ausgeführt, und nicht — etwa bei defektem/deaktiviertem PHP-Parser — als Klartext an den Client ausgeliefert wird?

Ich denke da z. B. an die Wikipedia: Im MediaWiki gibt es die LocalSettings.php, in der die Zugangsdaten zur MySQL-DB abgelegt sind. Wenn der PHP-Parser aus irgendeinem Grund mal ausfällt, könnte man doch die LocalSettings.php aufrufen und sie würde einfach als unbearbeitetes Script ausgeliefert und angezeigt werden. Das muß doch irgendwie verhindert werden, oder?

Vielen Dank für Eure Hilfe
JayKay

Hallo JayKay,

mir faellt da als spontane Loesung ein Config-Dateien nicht in oeffentlich erreichbare Verzeichnisse zu legen. Also entweder ausserhalb des DocumentRoots, oder in ein Verzeichnis das per Webserver-Config nach aussen gesperrt ist. (ggf. kann auch der Direktzugriff auf einzelne Dateien ueber den Webserver gesperrt werden)

Gruss
Stefan

Mal schauen

Ich denke da z. B. an die Wikipedia: Im MediaWiki gibt es die
LocalSettings.php, in der die Zugangsdaten zur MySQL-DB
abgelegt sind. Wenn der PHP-Parser aus irgendeinem Grund mal

und wenn die firewall ausfällt und der buffer immer geschrieben wird etc… was willst du uns erzählen ???

ausfällt, könnte man doch die LocalSettings.php aufrufen und
sie würde einfach als unbearbeitetes Script ausgeliefert und

klar, aber warum soll das möglich sein ?

angezeigt werden. Das muß doch irgendwie verhindert werden,
oder?

entweder ein verzeichniss ausserhalb des Servers nehmen , aber auch da könnte ja etwas nicht funktionieren und schon hilft das auch nix.

egal was du anstellst, ob mit server conf oder htaccess etc, wenn etwas ausfällt ?? (also der server abstürtzt wegen fehlfunktion) ?? dann kann alles mögliche passieren , aber normalerweise fällt dann der server aus , wer es schafft eine neue config dem server zuzuordnern, der hat in jedem fall gewonnen .

Also lasse deine config nochmal verschlüsseln etc etc etc . Aber was wenn er den schlüssel auch rausbekommt, etc etc oder gar die verschlüsselungsroutine versagt :frowning:

Hmm, gibt es doch zu blöde Fragen?
Hallo TechPech,

Ich denke da z. B. an die Wikipedia: Im MediaWiki gibt es die
LocalSettings.php, in der die Zugangsdaten zur MySQL-DB
abgelegt sind. Wenn der PHP-Parser aus irgendeinem Grund mal

und wenn die firewall ausfällt und der buffer immer
geschrieben wird etc… was willst du uns erzählen ???

Ich will überhaupt nichts erzählen. Ich bin PHP-newbie und habe eine Frage.

ausfällt, könnte man doch die LocalSettings.php aufrufen und
sie würde einfach als unbearbeitetes Script ausgeliefert und

klar, aber warum soll das möglich sein ?

Weil ein Server ohne PHP-Engine auch xyz.php in Klartext ausliefert.

angezeigt werden. Das muß doch irgendwie verhindert werden,
oder?

entweder ein verzeichniss ausserhalb des Servers nehmen , aber
auch da könnte ja etwas nicht funktionieren und schon hilft
das auch nix.

Okay, verstanden. Aber es wäre zumindest ein (kleiner) Sicherungsschritt dazwischen, oder?

egal was du anstellst, ob mit server conf oder htaccess etc,
wenn etwas ausfällt ?? (also der server abstürtzt wegen
fehlfunktion) ?? dann kann alles mögliche passieren , aber
normalerweise fällt dann der server aus , wer es schafft eine
neue config dem server zuzuordnern, der hat in jedem fall
gewonnen .

Schon. 100 % Sicherheit wird es nie geben (*alter Hut*). Ich will auch keine Bombensichere PHP-Abdichtungssicherung vorstellen, sondern mir ein Bild davon machen, ob oder wie dieser Möglichen Schwachstelle begegnet wird.

Also lasse deine config nochmal verschlüsseln etc etc etc .
Aber was wenn er den schlüssel auch rausbekommt, etc etc oder
gar die verschlüsselungsroutine versagt :frowning:

Ich habe das Gefühl, meine Frage hat Deinen Unmut erregt. Ich dachte, für Fragen ist so ein Forum da? Habe ich eine Netiquette mißachtet? Das wäre ein versehen gewesen. Aber 100 % Netiquette-Sicherheit wird es nie geben :wink:

Grüße
JK

1 Like

Moin

Ich will überhaupt nichts erzählen. Ich bin PHP-newbie und
habe eine Frage.

doch der erzählt die geschichte von , was wäre wenn , was zwar nie vorkommt und oder nur durch dummheit passiert ?

ausfällt, könnte man doch die LocalSettings.php aufrufen und
sie würde einfach als unbearbeitetes Script ausgeliefert und

klar, aber warum soll das möglich sein ?

Weil ein Server ohne PHP-Engine auch xyz.php in Klartext
ausliefert.

Welcher server hat PHP scripte und liefert diese aus ? entweder haben die dinger da nichts zu suchen weil der server kein php unterstützt, aber es kommt NIEEE vor das klartext ausgeliefert wird, ausser der server ist so konfiguriert,
nicht mit was wäre wenn , was wäre wenn das ei zuerst da war ?? ist halt eine blöde argumentation , sicherheit weil angenommen wird das tür und tor sich offnen , dann brauchste keine sicherheit .
Was wäre wenn ich via HTTP tunnel auf ein SSH zugreifen kann , ja was wäre wenn , SSH ausschlaten , damit den server unbrauchbar machen ??
denk mal nach , newbee lol

angezeigt werden. Das muß doch irgendwie verhindert werden,
oder?

entweder ein verzeichniss ausserhalb des Servers nehmen , aber
auch da könnte ja etwas nicht funktionieren und schon hilft
das auch nix.

Okay, verstanden. Aber es wäre zumindest ein (kleiner)
Sicherungsschritt dazwischen, oder?

der sin entgeht mir , das einzige warum man soclhe sachen in andere bereiche pakt ist weil der zugriff dort sicherer ist, unzwar für user auf dem gerät und nicht im internet.

egal was du anstellst, ob mit server conf oder htaccess etc,
wenn etwas ausfällt ?? (also der server abstürtzt wegen
fehlfunktion) ?? dann kann alles mögliche passieren , aber
normalerweise fällt dann der server aus , wer es schafft eine
neue config dem server zuzuordnern, der hat in jedem fall
gewonnen .

Schon. 100 % Sicherheit wird es nie geben (*alter Hut*). Ich
will auch keine Bombensichere PHP-Abdichtungssicherung
vorstellen, sondern mir ein Bild davon machen, ob oder wie
dieser Möglichen Schwachstelle begegnet wird.

das was wäre wenn ist nur schlau wenn es auch mal eintrifft. alles andere ist panik.

Also lasse deine config nochmal verschlüsseln etc etc etc .
Aber was wenn er den schlüssel auch rausbekommt, etc etc oder
gar die verschlüsselungsroutine versagt :frowning:

Ich habe das Gefühl, meine Frage hat Deinen Unmut erregt. Ich
dachte, für Fragen ist so ein Forum da? Habe ich eine
Netiquette mißachtet? Das wäre ein versehen gewesen. Aber 100
% Netiquette-Sicherheit wird es nie geben :wink:

die frage ist unlogisch, etwas zu sichern unter der annahme das das betriebsystem fehler macht, was willste da machen ? also ob server oder was auch immer, gegen fehlfunktionen unlogischer art kann man sich nie absichern, den es ist nicht sicherer als ohne des.

Grüße
JK

kein umnut, nur die „was wäre wenn“ auf dinge zu legen die wenn sie passieren eher ein einbruch bzw total absturz beschreiben , aber nicht die ich liefer aus was geht , hier bitte.

Hallo,

Ich will überhaupt nichts erzählen. Ich bin PHP-newbie und
habe eine Frage.

doch der erzählt die geschichte von , was wäre wenn , was zwar
nie vorkommt und oder nur durch dummheit passiert ?

Ich hatte also keine Frage? Ach, das ist mir gar nicht aufgefallen. Danke für die hilfreiche und so überaus nützliche Belehrung.

Aber offenbar hätte ich bereits wissen müssen, daß ein solcher Fall (Ausfall d. PHP-Interpreters) nur durch Dummheit passiert. Sorry, daß ich nicht einmal weiß, welches Wissen für Postings hier mitzubringen ist. Auch wußte ich nicht, daß Dinge, die aus Dummheit passieren, offenbar nicht thematisiert werden dürfen.

ausfällt, könnte man doch die LocalSettings.php aufrufen und
sie würde einfach als unbearbeitetes Script ausgeliefert und

klar, aber warum soll das möglich sein ?

Weil ein Server ohne PHP-Engine auch xyz.php in Klartext
ausliefert.

Welcher server hat PHP scripte und liefert diese aus ?
entweder haben die dinger da nichts zu suchen weil der server
kein php unterstützt, aber es kommt NIEEE vor das klartext
ausgeliefert wird, ausser der server ist so konfiguriert,
nicht mit was wäre wenn , was wäre wenn das ei zuerst da war
?? ist halt eine blöde argumentation , sicherheit weil
angenommen wird das tür und tor sich offnen , dann brauchste
keine sicherheit .
Was wäre wenn ich via HTTP tunnel auf ein SSH zugreifen kann ,
ja was wäre wenn , SSH ausschlaten , damit den server
unbrauchbar machen ??
denk mal nach , newbee lol

Mittlerweile wird mir klar, daß das Verletzen der Netiquette hier ganz sicher nicht der Maßstab ist („newbee lol“). Es ist nicht nötig, daß Du Dich in herablassender Manier über meine Frage, oder das, was ich dafür hielt, äußerst und mich belehrst („denk mal nach“).

Zur Rechtfertigung versuche ich meine Frage noch einmal präziser zu stellen, in der Hoffnung, sie findet letztlich doch noch Gnade vor Deinem Sachverständigen-Auge:

Aus meinem Deppen-Verständnis heraus gibt es einen Server (z. B. Apache) und einen PHP-Interpreter. Wenn letzterer ausfällt, können PHP-Scripte nicht mehr geparst werden und meine Frage (also, ich weiß nicht, was das sonst sein sollte) lautet nun: Was passiert dann mit dem PHP-Script?

Wenn ein isoliertes Ausfallen des Interpreters besonders unwahrscheinlich, oder prinzipbedingt vielleicht unmöglich ist, bräuchtest Du das nur zu sagen. Andernfalls ist das, was ich hier „meine Frage“ nenne, durchaus würdig, behandelt zu werden. Und zwar ohne Häme.

entweder ein verzeichniss ausserhalb des Servers nehmen , aber
auch da könnte ja etwas nicht funktionieren und schon hilft
das auch nix.

Okay, verstanden. Aber es wäre zumindest ein (kleiner)
Sicherungsschritt dazwischen, oder?

der sin entgeht mir , das einzige warum man soclhe sachen in
andere bereiche pakt ist weil der zugriff dort sicherer ist,
unzwar für user auf dem gerät und nicht im internet.

Okay.

Schon. 100 % Sicherheit wird es nie geben (*alter Hut*). Ich
will auch keine Bombensichere PHP-Abdichtungssicherung
vorstellen, sondern mir ein Bild davon machen, ob oder wie
dieser Möglichen Schwachstelle begegnet wird.

das was wäre wenn ist nur schlau wenn es auch mal eintrifft.
alles andere ist panik.

Gut, und das wußte ich nicht. Für mich, und darum bezeichnete ich mich als „Newbie“, sind Webserver und PHP-Interpreter zwei verschiedene Dinger, die unabhängig voneinander ausfallen können oder angreifbar sind. Wenn ein isoliertes Ausfallen von nur einem der beiden unwahrscheinlich oder prinzipbedingt unmöglich ist, hättest Du das nur einfach sagen können, ohne Dich in legasthenisch hingerotzter Arroganz zu üben.

Also lasse deine config nochmal verschlüsseln etc etc etc .
Aber was wenn er den schlüssel auch rausbekommt, etc etc oder
gar die verschlüsselungsroutine versagt :frowning:

Ich habe das Gefühl, meine Frage hat Deinen Unmut erregt. Ich
dachte, für Fragen ist so ein Forum da? Habe ich eine
Netiquette mißachtet? Das wäre ein versehen gewesen. Aber 100
% Netiquette-Sicherheit wird es nie geben :wink:

die frage ist unlogisch, etwas zu sichern unter der annahme
das das betriebsystem fehler macht, was willste da machen ?
also ob server oder was auch immer, gegen fehlfunktionen
unlogischer art kann man sich nie absichern, den es ist nicht
sicherer als ohne des.

Ich vermute, Du hast in der Materie (Server, PHP etc.) einen hohen Wissensstand, bist aber leider reichlich unfähig, Fragen nachzuvollziehen, die sich einem Anfänger jemandem aufwerfen können, der eben nicht alles weiß. Warum sollte ein Anfänger oder „Newbie lol“ wohl fragen? Außerdem gebricht es Dir an höflichen Mitteln, andere auf Denkfehler oder Wissenslücken hinzuweisen.

kein umnut, nur die „was wäre wenn“ auf dinge zu legen die
wenn sie passieren eher ein einbruch bzw total absturz
beschreiben , aber nicht die ich liefer aus was geht , hier
bitte.

… aber nicht die „ich schulmeistere Fragensteller in einem Forum“, hier bitte nicht.

1 Like

Ausschluß über .htaccess
Hallo Stefan,

mir faellt da als spontane Loesung ein Config-Dateien nicht in
oeffentlich erreichbare Verzeichnisse zu legen. Also entweder
ausserhalb des DocumentRoots, oder in ein Verzeichnis das per
Webserver-Config nach aussen gesperrt ist. (ggf. kann auch der
Direktzugriff auf einzelne Dateien ueber den Webserver
gesperrt werden)

Vielen Dank. Dann habe ich das Prinzip (Webserver, PHP etc.) doch nicht ganz mißverstanden. Ich hatte als völliger Laie mal einen Apache mit einem MediaWiki aufgesetzt, bei dem der PHP-Interpreter mal deaktiviert war. In diesem Zustand lieferte der Server die LocalSettings.php im Klartext aus (was mich nicht überraschte).

Ich betreibe natürlich kein Produktivsystem, war aber doch neugierig, wie sich wohl die Wikipedia vor derartigen Gefahren schützen könnte. Das Ausschließen mittels .htaccess klingt logisch. Komisch, daß es in der Installationsanleitung des MediaWiki nicht empfohlen wird. Vielleicht ist der Fall aber auch wirklich so selten, wie von anderer Seite hier im Thread dargestellt wurde.

Nochmals besten Dank und viele Grüße
JayKay

Die Frage die man sich dabei stellen muss ist natuerlich auch was fuer sensitive Informationen in dieser Config-Datei stehen.
Im Normalfall sind das z.B. die Zugangsdaten zur MySQL Datenbank, welche dem Angreifer in aller Regel wenig bringen, da der Zugriff auf die Datenbanken von aussen sowieso nicht erreichbar sein sollten. Auch Pfadangaben sind fuer Angreifer i.d.R. weniger nuetzlich (bzw. lassen sich bei einen richtigen Angriff sowieso einfach ermitteln falls es einen ausnutzbaren Angriffsvektor gibt)
Sollten allerdings Zugangsdaten zu anderen Diensten in solchen Config-Dateien enthalten sein, dann sieht die Sache natuerlich wesentlich kritischer aus.

Hi,

Aus meinem Deppen-Verständnis heraus gibt es einen Server (z.
B. Apache) und einen PHP-Interpreter. Wenn letzterer ausfällt,
können PHP-Scripte nicht mehr geparst werden und meine Frage
(also, ich weiß nicht, was das sonst sein sollte) lautet nun:
Was passiert dann mit dem PHP-Script?

genau das, was Du in Deinem Eingangsposting als Betreff gesetzt hast, wobei die Browser einen Großteil der Scripte nicht anzeigen, da sie dann <?php ?> als HTML-Element ignorieren müssten.
Das Script wäre natürlich in der Quelltextansicht einsehbar. Um sensible Daten zu schützen, kann man diese zum einen verschlüsseln und zum anderen für HTTP unerreichbar außerhalb des HTTP-Hauptverzeichnisses oder in einer Datenbank ablegen - oder, wenn beides nicht geht, in Dateien, die so benannt sind, dass HTTP sie nicht ausgibt; standardmäßig ist dies bei Dateinamen, die mit „.ht“ beginnen.

Gruß
Ingo

diskussionen darüber gibts ohne ende , was sinnvoll ist, warum wieso und wann
http://www.hackerboard.de/webmaster-security/34170-p…

auch das DB problem, zugriffsrechte etc …
das kann man unendlich ausweiten , und doch könnte es geknackt werden.

Danke
Vielen Dank, damit weiß ich, daß ich die Zusammenhänge prinzipiell verstanden habe.

Viele Grüße
JayKay

Danke auch Dir für den Link.

Angesichts der anderen Antworten verstehe ich nun noch weniger, weshalb Du mich so angegangen bist. Naja.

Gruß
JK

Hallo Stefan,

Im Normalfall sind das z.B. die Zugangsdaten zur MySQL
Datenbank, welche dem Angreifer in aller Regel wenig bringen,
da der Zugriff auf die Datenbanken von aussen sowieso nicht
erreichbar sein sollten.

Nun, wenn von einer bei 1&1 gehosteten Seite die DB-Login-Daten bekannt sind, kann man mit einem anderen 1&1-Account, und die sind ja nicht eben selten, schon zugreifen.

Aber die Zugangsbeschränkung über die .htaccess ist schon sehr gut. Ich muß mich nur in die Apache-Config-Materie einarbeiten.

Grüßken
JK