Poison of the Cursed wrote:Deine Antwort hat jedoch wieder neue Fragen bei mir aufgeworfen:
Okay, dann versuche ich mal Licht ins Dunkel zu bringen
Poison of the Cursed wrote:1. Was meinst du damit, dass sich ein User mit meiner Datenbank verbindet?
Mit User ist in dem Fall nicht der Anwender gedacht, der das Formular ausfüllt, sondern die Logindaten die du der mysql_connect (oder ähnlichen Funktionen zum Datenbankconnect) übergibst.
Dieser mysql-benutzer hat gewisse Rechte, was er alles mit der Datenbank tun darf. Und hier solltest du darauf achten, dass er nicht zuviele Rechte hat.
Das ist eine reine Schutzmaßnahme. Denn falls jemand wie auch immer deine Datenbankverbindung missbraucht (Stichwort SQL-Injection, etc.), hälst du den Schaden so gering wie möglich.
btw.: Du solltest natürlich vor Allem auch darauf achten, dass deine php-Scripte sicher sind!
Poison of the Cursed wrote:2. In einem mySQL-Tutorial habe ich gefunden, wie man eine Tabelle und einen User über phpMyAdmin händisch anlegt. Hier habe ich die Möglichkeit Rechte zu vergeben. Wenn bei dem Beispiel unter 1 der User die Verbindung öffnet, müsste ich ihm ja zumindest folgende Rechte vergeben: SELECT, INSERT und UPDATE. Oder?
Genau, das wäre in dem Fall die Minimalanforderung.
Poison of the Cursed wrote:Kann er sich dann die Datenbank auch ansehen? Das möchte ich nämlich nicht.
Auch hier muss man wieder differenzieren zwischen mysql-user und Anwender. Der Anwender hat keine Kenntnisse über die Datenbankverbindung, kann also auch nicht einfach deine ganze Datenbank auslesen (Auch hier wieder die Einschränkung, wenn dein php-script selbst nicht sicher ist, trifft meine Aussage nicht zu)
Poison of the Cursed wrote:3. Wie ist das gemeint?
Altrea wrote:Dinge wie Datenbankconnects werden in der Regel nicht direkt über eine URL aufgerufen. Diese scripte kannst du auch eine oder mehrere Ordnerebenen über deinem webroot Ordner ansiedeln.
Okay, nehmen wir mal an, du hättest XAMPP für Windows in dem empfohlenen Standardverzeichnis C:\xampp installiert. Dein webroot Ordner ist htdocs (bei anderen Apache Paketen kann dies auch der Ordner www, wwwroot oder sonst irgendwas sein).
Normalerweise würdest du deine ganzen Dateien also in den Ordner C:\xampp\htdocs oder einem Unterordner davon packen. Da spricht auch erstmal nichts gegen. Du solltest nur bedenken, dass jede Datei und jeder Ordner in deinem webroot Ordner über die Adressleiste des Browsers, also über eine eigene URL, angesprochen werden kann.
Bei vielen Dateien ist es aber garnicht notwendig oder erwünscht sie über die URL aufrufen zu können (die php-Datei die den Datenbank-connect ausführt wirst du zum Beispiel nicht über deinen Browser aufrufen, sondern per php-include oder sonstiges einbinden). Diese Dateien könnten ganz woanders liegen, in der Regel auf derselben Ebene als der webroot ordner (also zum Beispiel im Ordner c:\xampp\dbconnect.php - selbstverständlich würde man es vorziehen dort auch irgendeine Ordnerstruktur aufzubauen, zum Beispiel sowas: c:\xampp\projectxy\includes\dbconnect.php - da projectxy ein Nebenzweig von htdocs ist und kein Unterordner von diesem, kann der Zweig nicht über die URL, wohl aber per php-include angespochen werden).
Soetwas findest du aber in der Regel in keinem Anfängertutorial (auch weil es da die eine oder andere Sache zu beachten gibt), deshalb will ich es mal als Technik für Fortgeschrittene bezeichnen. Es gibt auch noch genug Webhoster, bei denen man garkeinen Verwaltungszugriff auf Ordner über dem Webroot Ordner bekommt.