Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Wie mache ich eine Datenbank sicher?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
01.08.2007, 09:38 Uhr
virtual
Sexiest Bit alive
(Operator)


Hallo,

ich frage mich, wie man auf einer Homepage eine Datenbank halbwegs sicher macht. Wenn man aus dem PHP Script heraus die Datenbankverbindung aufbaut, dann muß dieses Script ja die Connect-Daten, also inbes. auch user/passwort bekommen. Nur wenn die irgendwo in einer Datei auf der Seite liegen, kann ja theoretisch jeder Hinz, ganz zu schweigen von Kunz, das einsehen.

Eine halbgute Lösung scheint mir zu sein, daß ganze irgendwie verschlüsselt abzulegen. Halbgut nur deshalb, weil was verschlüsselt wird, auch entschlüsselt werden kann.

Eine richtig gute Lösung scheint mir zu sein, die Daten gänzlich unsichtbar für leute von draußen zu halten. Gibt es da irgendwelche Möglichkeiten? - Mein erster Versuch das ganze über .htaccess zu lösen ging jedenfalls in die Hose.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.08.2007, 11:54 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von virtual:

Eine richtig gute Lösung scheint mir zu sein, die Daten gänzlich unsichtbar für leute von draußen zu halten. Gibt es da irgendwelche Möglichkeiten? - Mein erster Versuch das ganze über .htaccess zu lösen ging jedenfalls in die Hose.

Also .htAccess ist auf jeden Fall genau dafür gedacht den Zugriff auf deine Dateien auf dem Server zu beschränken.

Was genau ist denn schiefgelaufen bzw. was genau hast du versucht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.08.2007, 11:55 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
naja solang die Leute nicht an den Quellcode des Scripts rankommen, können die ja auch nicht an die Zugangsdaten der DB gelangen.

Ansonsten möglichst so gestalten das die Variablen mit den Zugangsdaten nach dem Connect gelöscht werden.

Oder du richtest über php_mysql persistente Datenbankverbindungen ein, dann sieht nur der Webserver bzw das php-modul das passwort
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.08.2007, 12:46 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von Guybrush Threepwood:

Was genau ist denn schiefgelaufen bzw. was genau hast du versucht?


Naja, derzeit ist es bei mir so, daß ich ein "/index.php5" habe, welches lauter require_once("/php/xxx.php") enthält. Dann habe ich das /php Verzeichnis in .htaccess eingetragen.

Der Effekt war, daß ich beim Ausführen von /index.php5 nach einem Password gefragt wurde, um auf das php/xxx.php zugreifen zu können. Die Hoffnung war eben, daß der passwortschutz nur nach außen wirkund ich also intern - zB durch das require_once - ohne Passwortabfrage klar komme. Denn wenn dem so wäre, würde ich die Datenbankverbindung einfach in einer Datei in einem geschützten Verzeichnis machen.

Aber irgendwie scheint das eben nicht zu funktionieren oder ich habe was anderes Falsch gemacht.

Insofern ist mir auch die generelle Vorgehensweise nicht ganz klar, wie ich überhaupt Scripte vor aussen schütze.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.08.2007, 14:03 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Du hast vermutlich etwas falsch gemacht; ich denke mal, bei den Dateiberechtigungen. Eine .htaccess wirkt sich ausschließlich auf Zugriffe über den Webserver aus, nicht auf lokale Leseaktionen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.08.2007, 16:09 Uhr
mike
Pinguinhüpfer
(Operator)


PostgreSQL bietet hierfür Dot-Files an - finde es grade in der Doku nicht. Poste es wenn ichs find

EDIT: www.postgresql.org/docs/8.1/static/libpq-pgpass.html sollte imo auch mit PHP gehen
--

Dieser Post wurde am 02.08.2007 um 18:12 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2007, 20:36 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Ok. Wenn ich mir das recht überlege hat man dadurch auch keinen Neugewinn - sorry
Evntl. hilft www.suphp.org/Home.html und nur rwx für den eignen User. Falls es sich um einen Hoster handelt sollte der schon suphp oben haben denk ich.
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.08.2007, 22:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja das man sich ein php script direkt aufruft a la

http://foo.bar/config/config.php

sieht man ja trotzdem nix - sondern nur das geparste. Also kommt man SO an die Benutzerdaten vom MySQL o.ä nicht ran - Einzige Problem sind z.b Template-systeme oder Sachen die eval benutzen, da man da evtl code einschleusen kann der dann ausgeführt wird, u.a der dann halt die variablen ausgibt. und das beugt man vor indem man den connect vor allen ausgaben und verarbeitungen macht und nach dem connect die jeweiligen variablen vernichtet.
Denn wenn einer auf den ftp oder per ssh rankommt - da ists dann eh zu spät
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.09.2007, 18:43 Uhr
Kelle



Nicht jeder Hinz kann php-Quellcodes auslesen. Php wird auf dem Server ausgeführt, dieser wandelt alles in HTML um und sendet es dem Browser. Diese wiederum zeigt es an. Aber wenn du dich immernoch nicht sicher fühlst ist wie schon gesagt htaccses eine gute Sache. Aber eigentlich sollte es ohne gehen. Man brauch die FTP Zugangsdaten um die Php Quellcodes auszulesen von daher brauchst du dir keine Sorgen machen
--
ST-Designs | Kelle-Stylez
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.09.2007, 22:36 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Irrtum. Es braucht nur mal eine Fehlkonfiguration des Webservers zu geben, und deine ganze schöne Sicherheit ist den Bach runter!

In professionellen Lösungen wird das vermutlich mit Clustern gelöst. Das heißt, die Server, die für das Ausliefern der Webinformationen zuständig sind, beziehen die Passwortdaten von einem fremden Server, der sie auch erst dann rausrückt, wenn sicher ist, dass der Zugriff authorisiert ist. Wer dann immer noch an die Daten kommt, der hat schon das lokale Intranet infiltriert und sowieso freihe Hand.

Für "Normalsterbliche" sollte es ausreichend sein, die sensitiven Daten in einem speziellen Verzeichnis oberhalb des htdocs des Webservers abzulegen.
Also wenn /usr/kunde135/hp/ das Verzeichnis ist, dass der Webserver als / ausliefert, dann packst du die Daten für die Datenbankverbindung halt nach /usr/kunde135/private/ und setzt entsprechende Zugriffsrechte darauf. Das schützt dich immer noch nicht davor, dass dein ISP die Daten ausliest - Aber zumindest dem solltest du schön vertrauen können

Generell gilt: Verlasst euch niemals darauf, dass eure .php-Dateien immer geparst werden!
1. Kann ein technischer Fehler diese Sicherheit in Sekunden zunichte machen (z.B. falsch konfigurierter Webserver)
2. Kann ein böswillier Mensch diese Sache evtl. umgehen (Stichwort Code Injection, allerdings seid ihr dann streng genommen eh am A*....)
3. Kann ein menschliches Versagen oder auch Unwissenheit dem ganz schnell einen Strich durch die Rechnung machen (Stichwort: Versehentlich mit hochgeladene Backup-Dateisicherungen, die automatisch von eurem Codeeditor angelegt werden, und z.B. die Endung .~tmp haben).

Bruce Schneier hat das mit seinem allseits zitierten Spruch geprägt: "Sicherheit ist kein Zustand, es ist ein Prozess!"
Entsprechend gilt: Man kann(/darf) sich nicht sicher fühlen. Nur sicherer als zuvor.

Dieser Post wurde am 25.09.2007 um 22:37 Uhr von Reyx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: