• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Include & Security

afoeder

New member
Hallo!

Ich habe eine Website mit Datenbank.
Hier gleich auch die Frage, ob ich es richtig verstanden habe:
ich erstelle eine Datei namens access.inc, in der steht

$password = "soundso";
$dbname = "trallala";

wenn ich in eine andere PHP-Datei den Befehl include('access.inc') anwende, steht von nun an die Variable $password und $dbname gefüllt zur Verfügung, oder?


Dann die eigentliche Frage:
ich denke mal, es ist sicher genug, die Passwort-Datei auf dem Server abzulegen, zudem noch in einem include-file.
oder ist das nicht sicher? sollte ich etwas anderes machen?


danke,
adrian
 
hmm...

kommt darauf an, wie sicher das ganze sein soll...

'wichtig' ist meines erachtens auch, dass du eine durchgängige datestruktur verwendest. bsp.

xxxxx.php4 --> normale files
xxxxx.inc.php4 --> include files
xxxxx.lib.php4 --> library file mit functionen
xxxxx.tpl.php4 --> template / parse files
xxxxx.html --> basis files die auch geparste werden (normalerweise)

dies ist allerdings keine 'vorschrift' o.ä.

allerdings dass deine include-daten auch innerhalb derjeweiligen f() verfügbar sind, musst du sie auf 'global $var1,$var2...' setzen...

aber ich denke das weist du :)
 
sicher?!?

also ob das sicher ist, das bezweifel ich erst einmal....
die .inc Dateien werden vom Webserver i.d.R. ignoriert, d.h. der Server weiß nix damit anzufangen und liefert sie "as-is" an den anfragenden Browser zurück. Dieser erkennt: Hey is ja text/plain und zeigt wunderbar Deine Passwörter, Einstellungen und Programmcode an.....
Probiers am besten mal aus, indem Du vom Browser aus die Sachen aufrufst.....

So was kannst Du dagegen tun.... hmm entweder
- alle Dateien zu .php Dateien machen, dann versucht der Server die zu interpretieren, findet keine Ausgaben und ein leeres Dokument kommt zurück
- die Server Conf Datei anpassen und ihm sagen er möge doch auch .inc Dateien als PHP Dateien interpretieren
- oder (falls kein Zugriff auf Server Conf Datei) in der .htaccess .inc Dateien als PHP Dateien deklarieren (dies geht allerdings nur, wenns vom Provider erlaubt wurde)

bestimmt hab ich jetzt noch die eine oder andere Möglichkeit vergessen, aber die drei oben genannten Lösungsmöglichkeiten solltest Du Dir zu Herzen nehmen, sonst kannst Du Dir die Passwörter auch gleich sparen....

Ciao,

Albu
 
include-dateien als *.php habe ich eh schon aus Unwissenheit abgespeichert.
Später habe ich gesehen, das man die als *.inc abspeichert.
Da aber meine *.php-includes funktionierten, habe ich sie so gelassen.

Du schriebst, das der Server *inc-Dateien plain an den Browser schickt.
d,.h. ich gebe in den browser www.trallala.de/passwds.inc ein, und der schickt mir dessen Inhalt.
okay.

wie aber KOMMT man überhaupt auf diese Adresse www.trallala.de/passwds.inc ?
die steht ja wenn schon in der PHP-Datei bei include(), und der User sieht aber den code der PHP-datei nicht.
er könnte höchstens auf Verdacht passwords.inc eingeben oder so.
wenn man ganz sicher gehen will, nimmt man eienn random-string als dateinamen...



oder?

oder blick ich da was nicht?

danke,

adrian
 
natürlich muß der Benutzer erstmal auf diesen Namen kommen....
aber
1. die Leute sind schlauer als man denkt
2. typische Dateinamen, werden gleich als erstes probiert
3. und warum überhaupt mit einer solche Lücke leben, wenn es so einfach ist sie zu stopfen?!?!?

Und die Geschichte mit dem Randomstring als Dateiname wirst Du wohl nach der 10ten Include Datei verwerfen, weil dann weißt Du nämlich selbst nicht mehr, wo was drin steht....

Ich meine natürlich kommt es immer darauf an, wie sicher will ich meine Applikation machen und wie kritisch sind die Daten, aber prinzipiell ist es immer ungut, wenn jemand Deine Zugangsdaten in die Hände bekommt. Du sagst jetzt vielleicht, hmmm was kann er schon mit meinem Datenbank Zugriffspasswort anfangen.... hmmm naja nehmen wir mal an, er ist beim selben Provider, hat phpMyAdmin installiert und gibt einfach mal Deine Zugangsadaten ein..... kommt er dann nicht an Deine Datenbank heran?!? Ein drop table user; ist schnell abgesetzt... huch meine Benutzer können sich nicht mehr in den Members Bereich einloggen....
 
genau das sehe ich auch so.
es ist WURSCHT, ob der User an meine Daten kommt oder irgendwas verpfuscht, aber es ist "schade", wenn sowas passieren sollte.
"muss ja nicht sein" ;-))
 
du kannst deine passwort-dateien auch in ordner ausserhalb des document_roots legen und von dort aus includen.
bsp: /usr/etc/local/httpd/domain.de ist dein webverzeichnis, dann packst du die access.inc (die ich eh access.inc.php nennen würde, damit die ausgabe leer ist) in /usr/etc/local/pass und includest sie von dort aus.

bye,
mo
 
@Michael: das setzt aber voraus, daß man Zugriff auf diese Verzeichnisse hat! Das ist aber bei Providern wie Puretec nicht unbedingt gegeben. Und da bleibt Dir nur die Möglichkeit die Dateien in .php umzubenennen oder ein .php dranzuhängen (was letztendlich das selbe ist)

@afoeder: also das es Dir wurscht ist glaub ich nicht, oder will ich nicht hoffen.... ich meine ich weiß nicht was Du für Daten speicherst und was man damit anfangen könnte, aber wenn Du z.B. Benutzer mit Login und deren Daten durch so eine Sicherheitslücke "öffentlich" zugänglich machst, dann hört der Spaß sehr schnell auf...
ich weiß Angriffsszenarien gibt es viele und nicht alles was möglich wäre tritt auch ein, aber wenn man eine Lücke kennt, was dagegen tun könnte und es trotzdem unterläßt, dann ist das mehr als fahrlässig....
 
Zurück
Oben