Forum
Tipps
News
Menu-Icon

Datenbankpasswort in der website schützen

Ich habe eine MySQL-Datenbank. Wenn ich jetzt eine Website erstelle die jetzt einen Text abruft, da muss die Website doch ein Passwort der Datenbank "geben", damit sie denn Text bekommt, dieses Passwort ist doch im Quellcode gespeichert und jeder könnte ihn abrufen. Gibt es eine variante wo das Passwort nicht so einfach einsehbar ist?


Antworten zu Datenbankpasswort in der website schützen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi,

Du legst das Passwort ja nur im PHP-Teil der Webseite ab (Ich hoffe jedenfalls für Dich, dass Du das so machst). Der Server wertet dann die PHP-Datei aus und schickt das Ergebnis der Auswertung an den Browser. Da ist dann üblicherweise das Passwort nicht mehr drin.

Wenn Du ganz sicher gehen willst, leg das Passwort (und ggf. die Anweisungen zum Verbinden mit der Datenbank) in ein Include, welches sich nicht innerhalb des Webverzeichnisses befindet. Also so:

.
|-- httpdocs
|   `-- index.php
`-- private
    `-- dbconnect.php

in der dbconnect.php verbindest Du mit der Datenbank, in der index.php rufst Du die dbconnect.php per include() auf:

<?php
include(&#39;../private/dbconnect.php&#39;);
?>


wobei das httpdocs-Verzeichnis jenes sein sollte, welches beim Aufrufen der Domain direkt angesprochen wird ( sodass die oben genannte index.php mit www.example.com/index.php bzw. direkt mit www.example.com aufgerufen wird ) ob und wie das geht, verrät Dir Dein Hoster. Bei manchen Hostern ist es sogar möglich, die Datenbankverbindung ohne Angabe des Passworts aufzubauen, sofern die Anfrage von einem PHP-Script auf dem Server kommt.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ok danke,

Ich habe rausgefunden das ich meine Passwörter und Zugangsdaten in einer .inc-Datei speichern kann.
wie sollte die .inc-Datei ausehen?

kann ich auch mit html-Formular mit der .inc-Datei und der MySQL-Datenbank arbeiten und wie sollte dann der code aussehen?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi,

Du musst darauf achten, dass man diese .inc Datei auf keinen Fall von außerhalb öffnen kann (z.B. wenn man den genauen Pfad kennt).

Normalerweise legt man die .inc entweder, wie oben schon beschrieben, in ein Verzeichnis, welches sich nicht innerhalb des Webverzeichnisses befindet, oder in ein mit einer .htaccess-Datei geschütztes Verzeichnis. Dabei müsstest Du aber unbedingt ausprobieren, ob .htaccess auf Deinem Webspace funktioniert.

Alternativ kann man bei manchen Webspace-Anbietern einzelne Verzeichnisse mit einem Passwort schützen. Das hätte zumindest einen ähnlichen Effekt wie der Schutz mit der .htaccess-Datei.

Eine .htaccess-Datei könnte z.B. so aussehen:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName DenyViaWeb
AuthType Basic

<Limit GET>
order allow,deny
deny from all
</Limit>
« Letzte Änderung: 21.11.10, 13:51:51 von MBGucky »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ich hate vergessen zu schreiben das mein webanbieter das aufrufen/download der datei verhindert

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
kann ich auch mit html-Formular mit der .inc-Datei und der MySQL-Datenbank arbeiten und wie sollte dann der code aussehen?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
kann ich auch mit html-Formular mit der .inc-Datei und der MySQL-Datenbank arbeiten und wie sollte dann der code aussehen?

Ein kleiner Hinweis für Dich, fals Du das Prinzip von php noch nicht verstanden hast:

  • Der Benutzer ruft eine URL auf (z.B. www.example.org/index.php )
  • Der Server prüft, ob in dieser Datei enthaltener php-code ausgeführt werden soll (In diesem Fall: Datei endet auf .php , also JA)
  • Der Server durchsucht die Datei nach Bereichen mit php-code (gekennzeichnet mit <?php ?>)
  • Der Server gibt die Inhalte der Datei nach und nach aus. Wenn sich darin php-code befindet, wird dieser ausgeführt. Innerhalb des php-codes sorgt idR. der echo-befehl für eine Ausgabe an den Browser.
  • Der Browser des Benutzers erthält (idR.) einen HTML-Code vom Server, in dem (korrekte Programmierung vorausgesetzt) kein php-code sichtbar ist.

Du kannst also jederzeit HTML in einer PHP-Datei darstellen, aber niemals PHP-Code in einer HTML-Datei im Browser ausführen.

Die folgenden 2 Beispiele führen zu dem selben Ergebnis:

<html>
  <head>
  </head>
  <body>
    <p>Hello World</p>
  </body>
</html>

<html>
  <head>
  </head>
  <body>
<?php echo&#39;    <p>Hello World</p>
&#39;; ?>
  </body>
</html>

Der Browser bekommt aber immer den oberen Code zu sehen. Und nein, in diesem HTML-Code kannst Du keine Verbindung zur Datenbank aufbauen. (Und wenn Du es könntest, müsstest Du das DB-Passwort veröffentlichen.)


Wie Du in PHP eine Verbindung zur Datenbank aufbaust, erklär ich Dir jetzt aber nicht auch noch. Vielleicht schaust Du Dir einfach mal php.net an. Stichworte zum Suchen: mysql_connect ; mysql_select_db ; mysql_query ; mysql_fetch_array

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

jetzt habe ich es verstanden

vielen dank das man mir geholfen hat


« openvpnPHP: 9-stellige Zahl lässt sich nicht per POST übergeben »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Grundstrich
Der Begriff des Grundstrichs im Bereich der Typografie, bezeichnet den senkrechten Strich der Buchstaben. Bei Schriftarten mit variabler Strichstärke, wie zum Beispi...

Haarstrich
Der Begriff Haarstrich stammt aus dem Bereich der Typographie. Bei Schriften, wie zum Beispiel der Antiquaschrift mit unterschiedlichen Strichstärken, wird zwischen ...

Hypertext
Hypertext ( zu Deutsch: Übertext) ein ein von dem Informatiker Theodore L. Nelson in den sechziger Jahren geprägter Begriff für Text, der dreidimensional g...