Include Dateien -> sind sie Sicher?
Andavos
- php
0 bjb0 bjb
0 Sönke Tesch0 TomIRL0 Andavos
0 Thomas Meinike0 Trexis5
Hallo,
also ich lade für meine Script ein paar Sachen immer per include.
Darunter sind:
Benutzername und Passwort für MySQL Datenbank
Passwort für internen Bereich
Die Site sieht dann ca. so aus:
<?php
include("config.inc.php");
?>
In der config.inc.php sind dann die Passwörter.
Inhalt von config.inc.php:
<?php
$mysqlpw = passwort;
$mysqluser = user;
...
?>
Aber sind die dort auch sicher, vor fremde Personen?
Jemand könnte ja einfach schreiben:
<?php
include("http://www.meineurl.de/config.inc.php");
echo $passwort;
?>
Dann würde er ja das Passwort für meine MySQL Datenbank, und somit zu meinem Space bekommen.
Oder geht das nicht?
Ich habe mal
<?php
include("http://web.de");
?>
eingegeben, und es ging.
Um eine Antwort wäre ich dankbar
MFG
Andavos
hi
<?php
include("http://www.meineurl.de/config.inc.php");
echo $passwort;
?>
Dann würde er ja das Passwort für meine MySQL Datenbank, und somit zu meinem Space bekommen.Oder geht das nicht?
meiner meinung nach geht das nicht, da die variablen ja auf dem server sind und nicht so einfach zu einem anderen server übertragen werden. oder irre ich mich da? (bin nicht ganz sicher)
Ich habe mal
<?php
include("http://web.de");
?>
eingegeben, und es ging.
probier mal irgendwo variablen auszulesen
gruß
bjb
HI
nochmal was: du kannst am ende deines scripts einfach unset() benutzen und die sensiblen variablen löschen.
gruß
bjb
In der config.inc.php sind dann die Passwörter.
Inhalt von config.inc.php:
<?php
$mysqlpw = passwort;
$mysqluser = user;
...
?>Aber sind die dort auch sicher, vor fremde Personen?
Das kommt darauf an, welchen Hoster Du hast. Bei den meisten kleinen Hostern kann jeder andere Kunde dieses Hosters auf Deine Dateien lesend zugreifen (mit Trick 17).
Jemand könnte ja einfach schreiben:
<?php
include("http://www.meineurl.de/config.inc.php");
echo $passwort;
?>
PHP-Skripte verlassen niemals den Server, nur das, was diese Skripte ausgeben. Das gilt für Zugriffe vom Browser genauso wie für Zugriffe durch PHP; Deine config.inc.php macht da keine Ausnahme. Probier' es in Deinem Browser mal aus.
Tödlich wäre lediglich, wenn Du Deine Dateien nach dem Schema config.inc benennst, da diese mangels .php-Endung nicht vom Server durch den PHP-Interpreter gejagt, sondern (in der Regel) als einfache Textdateien ausgeliefert werden.
Gruß,
soenk.e
Hallo Andavos,
Zuerst einmal siehe Sönkes Antwort.
Dann ich speichere die PWs erst gar nicht in einer Variabele.
Sondern ich mache das so:
$db = mysql_connect("localhost", "username", "PW");
Und diese Datei mit noch ein bischen mehr Zeug wird per include eingebunden!
Und nu versuche doch mal das Passwort für die DB rauszubekommen.
TomIRL
Zusätzlich ist anzumerken, dass derjenige doch erst einmal rausfinden muß welche Dateienen included werden.
TomIRl
Hallo,
ja so mache ich es sonst auch immer.
Aber ich schreibe gerade an einem selbst Installierenden Script, und da muss ich die eingegebenden Passwörter so speichern, sonst wäre das viel zu viel schreib arbeit.
MFG
Andavos
Hallo,
Inhalt von config.inc.php:
<?php
$mysqlpw = passwort;
$mysqluser = user;
...
?>Aber sind die dort auch sicher, vor fremde Personen?
Durchaus, sofern diese Includes als PHP geparst werden und nichts von den sensiblen Daten ausgeben. Besser ist es noch, solche Dateien in einem Verzeichnis oberhalb des oeffentlichen DocumentRoot-Verzeichnisses auszubewahren und von dort aus einzubinden, etwa:
include("/home/username/config/config.inc.php");
MfG, Thomas
include("http://www.meineurl.de/config.inc.php");
Das geht nie nicht...
Soviel ich weis.
Bei mir kann ich nur den Pfad angeben ../config/config.php
z.B.
Vielleicht liegt das auch an dem Server.
hi,
include("http://www.meineurl.de/config.inc.php");
Das geht nie nicht...
doch.
Bei mir kann ich nur den Pfad angeben ../config/config.php
Vielleicht liegt das auch an dem Server.
ja.
gruss,
wahsaga
hi,
Bei mir kann ich nur den Pfad angeben ../config/config.php
Vielleicht liegt das auch an dem Server.
ja.
ergänzung: die option, die dafür verantwortlich ist, heisst allow_url_fopen.
http://de.php.net/manual/de/ref.filesystem.php#ini.allow-url-fopen
gruss,
wahsaga