sichere Verbindung zur Datenbank mit php
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anspruch
beispiel
code
datei
datenbank
datum
ftp
herstellen
inhalt
instanz
interpreter
leere datei
normalfall
null
ordern
richtigkeit
schema
sichere verbindung
verzeichnis
zugriff
-
Moin,
ich hab gerade meine erste Website programmiert und will diese nun bald online stellen. Da es hauptsächlich darum geht, dass User Daten eingeben und diese dann gesammelt werden habe ich Datenbank. Meine Frage ist nun wie ich zu dieser eine sichere Verbindung herstellen kann. Denn wenn ich einfach das Passwort in den php-Code schreibe ist das doch nicht wirklich sicher oder?
momentan sieht meine Datenbankverbindung so aus:
$dbh = new PDO("hostname", "username", "password");
Gibt es hier auf lima-city irgendeine Möglichkeit das wirklich sicher zu machen?
Danke im vorraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Im Normalfall bleiben deine Daten in einer Datei Namens bsp.-weise Config.php, von wo aus diese ausgelesen werden.
Sollte die Datei dennoch i-wie aufgerufen werden, so sollte der PHP-Interpreter eine leere Datei ohne Inhalt liefern.
Wenn jedoch jmd. schafft, die Datei (Dateien) per FTP zu downloaden, so bekommt er auch jene PHP-Dateien zu Gesicht und kann den Inhalt ohne Einschränkung einsehen. In dem Fall hast du allerdings größere Probleme.
Wenn Du mit OOP arbeitest, so kannst du auch eine Klasse z.B. DBConnect.class.php erstellen, die dir dann die Instanz deines PDO's Objekt zurück gibt.
<?php class DBConnect { private $connection = NULL; function __construct() {} function connect() { include_once dirname(__FILE__) . '/../conf/Config.php'; $db = NULL; try { $db = new PDO( DB_HOST, DB_USERNAME, DB_PASSWORD ); } catch ( PDOException $e ) { echo 'Failed to connect to MySQL: ' . $e->getMessage(); } $this->connection = $db; } public function getConnection() { return $this->connection; } }
Kein Anspruch auf Richtigkeit, wäre nur meine Vorgehensweise. -
Hallo abizeitung17,
erzeuge einfach ein Unterverzeichnis mit Namen db
Den Zugriff auf dieses Verzeichnis sicherst Du durch eine .htaccess Datei.
Wie genau du den Zugriff steuerst musst Du dir überlegen.
Beispiel:
Order allow,deny deny from all Allow from localhost Allow from 127.0.0.1
In das Verzeichnis legst Du dan einfach eine Datei mit Namen zugangsdaten.php (Beispiel):
<?php $mysqlhost="localhost"; // Servername $mysqluser="root"; // MySQL-Benutzer $mysqlpwd="meinP@sswort"; // Passwort $mysqlschema="meinSch€ma"; // Schema-Datenbank ?>
in Deine Projektdateien (z.B. index.php) kannst du das dann einfach einbinden:
<?php session_start(); require 'db/zugangsdaten.php'; // die Variablen ($mysqlhost $mysqluser + $mysqlpwd + $mysqlschema) sind jetzt gefüllt, Du kannst jetzt den DB-Connect herstellen echo "hello world!"; ?>
Gruss Dunkeltuten
-
PHP Dateien werde ausgeführt und nicht angezeigt. Daher ist es unnötig diese mit .htaccess zu schützen.
Viel wichtiger ist doch, dass der Inhalt nicht angezeigt werden kann.
Daher muss man beim Programmieren darauf achten, wenn man die Möglichkeit bietet beliebige Dateien mit PHP Anzeigen zu lassen, dass keine PHP-Dateien angezeigt werden können.
Wenn du das nicht vor hast, so sind die Zugangsdaten so lange sicher, wie niemand dein FTP-Passwort hat, sonst kommt man nicht an die Datei. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage