Hallo miteinander... Ich habe hier zwei blöde Probleme, wozu ich keine Lösung finde. MySQL-Version = 4.1.9-Max-log PHP = 4.3.8 (von SL 9.2) 1. Datenbank- und Webserver laufen auf der gleichen Maschine. Das bewirkt, dass eine Verbindung via PHP zur Datenbank über host=localhost stattfindet. So will ich das aber eigentlich nicht. Die Zugriffe auf die Datenbank kommen immer von einem anderen Rechner und eigentlich soll dieser Rechner als host übergeben werden, was aber bei dieser Konfiguration nicht funktionieren will. Ursprünglich habe ich alle Zugriffe von localhost, bis auf root, gelöscht. Und ich will eigentlich nicht den Webserver und PHP auf der Workstation laufen lassen. Gibt es hier eine elegante Lösung? 2. Benutzer, die Zugriff auf die Datenbanken erhalten, sollen mit PHP über mysql.user abgeglichen werden. Es soll also keine neue Benutzerdatenbank erstellt, sondern die bereits vorhandene genutzt werden. Ich sehe jetzt kein Problem darin, den Usernamen zu übergeben. Es fällt mir aber keine Lösung für das Passwort ein. Das Grundproblem zwischen Server und Client ist ohnehin das Passwort, so dass ich wohl bei den Benutzern OLD_PASSWORD benutzen muss, was aber nicht so tragisch wäre. Aber wie übergebe ich das eingegebene Password verschlüsselt an mysql.user und lasse es validieren? Ja, ich habe auch eine Millionen Loginscripte gefunden, aber nichts davon finde ich zu gebrauchen. Wäre nett, wenn mir jemand hier einmal zur Hand gehen würde, auch wenn es nicht so ganz hier her passt. ;) -- gruß Oliver
Hallo Oliver, hallo Leute, Am Samstag, 19. Februar 2005 08:49 schrieb Oliver Leue:
1. Datenbank- und Webserver laufen auf der gleichen Maschine. Das bewirkt, dass eine Verbindung via PHP zur Datenbank über host=localhost stattfindet. So will ich das aber eigentlich nicht.
Du wirst es aber nicht anders hinbekommen, wenn Du ein Webinterface verwendest. Ich finde das übrigens nichtmal schlimm - im Gegenteil. Da alles über localhost läuft, braucht MySQL nicht auf der externen IP zu lauschen - ein möglicher Angriffspunkt weniger.
Die Zugriffe auf die Datenbank kommen immer von einem anderen Rechner
Moment. Meinst Du "Die Zugriffe _auf das PHP-Webinterface_ kommen von einem anderen Rechner"? Wenn ja, dann bleibt es bei localhost. Falls Du die Zugriffe auf bestimmte Hosts beschränken willst, musst Du das in Dein PHP-Script einprogrammieren (hint: $_SERVER['REMOTE_....'], genauer Variablenname siehe <?php var_dump($_SERVER); ?>
2. Benutzer, die Zugriff auf die Datenbanken erhalten, sollen mit PHP über mysql.user abgeglichen werden. Es soll also keine neue Benutzerdatenbank erstellt, sondern die bereits vorhandene genutzt werden.
Welche Benutzerdatenbank meinst Du? - Die MySQL-User? Die kannst Du schlicht durch Aufbauen einer Verbindung zu MySQL mit entsprechendem Usernamen und Passwort testen ;-) - eine andere? Wenn ja: welche genau? Gruß Christian Boltz -- Windows ist übrigens nicht Scheiße weils ein 'GUI-OS' ist - was auch immer das genau sein mag - sondern weils, nun ja, eben einfach Scheiße ist (oft jedenfalls). [Phillip Richdale in suse-linux]
Hallo, Am Sun, 20 Feb 2005, Christian Boltz schrieb:
Am Samstag, 19. Februar 2005 08:49 schrieb Oliver Leue:
1. Datenbank- und Webserver laufen auf der gleichen Maschine. Das bewirkt, dass eine Verbindung via PHP zur Datenbank über host=localhost stattfindet. So will ich das aber eigentlich nicht.
Du wirst es aber nicht anders hinbekommen, wenn Du ein Webinterface verwendest.
Ich finde das übrigens nichtmal schlimm - im Gegenteil. Da alles über localhost läuft, braucht MySQL nicht auf der externen IP zu lauschen - ein möglicher Angriffspunkt weniger.
Aeh, sacht ma, PHP kann doch auch per Socket mit MySQL kommunizieren! Da braucht man also gar kein IP dafuer. -dnh --
Ich habe das ausprobiert, aber wenn ich das auf yes stelle dann stürzt der PC beim Booten ab. Was Nun? Dann stell es am besten wieder auf "no". -- Betrefflose Frage und Antwort in suse-linux
Am Sonntag, 20. Februar 2005 01:14 schrieb Christian Boltz:
Hallo Oliver, hallo Leute,
Du wirst es aber nicht anders hinbekommen, wenn Du ein Webinterface verwendest.
Ich habe es geahnt.
Moment. Meinst Du "Die Zugriffe _auf das PHP-Webinterface_ kommen von einem anderen Rechner"? Wenn ja, dann bleibt es bei localhost.
Ja, genau das meinte ich, sorry.
Falls Du die Zugriffe auf bestimmte Hosts beschränken willst, musst Du das in Dein PHP-Script einprogrammieren (hint: $_SERVER['REMOTE_....'], genauer Variablenname siehe <?php var_dump($_SERVER); ?>
Kann man das nicht global irgendwo definieren? So dass also der PHP-Server bereits nur auf einen oder bestimmte clients reagiert?
Welche Benutzerdatenbank meinst Du? - Die MySQL-User? Die kannst Du schlicht durch Aufbauen einer Verbindung zu MySQL mit entsprechendem Usernamen und Passwort testen ;-)
Gut. Aber wie ich das Passwort dann übergeben kann ist mir noch nicht so klar. Muss es bei mysql 4.1.x MD5-verschlüsselt vom PHP-Script an MySQL übergeben werden? -- gruß Oliver
Hallo Oliver, hallo Leute, (@David: richtiger Einwand, hatte ich vergessen zu erwähnen ;-) Am Sonntag, 20. Februar 2005 07:33 schrieb Oliver Leue:
Am Sonntag, 20. Februar 2005 01:14 schrieb Christian Boltz: [...]
Falls Du die Zugriffe auf bestimmte Hosts beschränken willst, musst Du das in Dein PHP-Script einprogrammieren (hint: $_SERVER['REMOTE_....'], genauer Variablenname siehe <?php var_dump($_SERVER); ?>
Kann man das nicht global irgendwo definieren? So dass also der PHP-Server bereits nur auf einen oder bestimmte clients reagiert?
Geht in der Apache-Config, wahlweise in der globalen Config, <VirtualHost>, <Directory>, <Files> oder per .htaccess: Deny from all Allow from 192.168.1 erlaubt Zugriffe von 192.168.1.* Weitere Beispiele: http://buecher.lingoworld.de/apache2/showdir.php?id=441
Welche Benutzerdatenbank meinst Du? - Die MySQL-User? Die kannst Du schlicht durch Aufbauen einer Verbindung zu MySQL mit entsprechendem Usernamen und Passwort testen ;-)
Gut. Aber wie ich das Passwort dann übergeben kann ist mir noch nicht so klar. Muss es bei mysql 4.1.x MD5-verschlüsselt vom PHP-Script an MySQL übergeben werden?
Gute Frage - ich habe hier MySQL 4.0 und kann das Passwort einfach im Klartext übergeben. Zu 4.1 finden sich aber ein paar User-Kommentare auf www.php.net/mysql-connect (mit etwas Glück bringt Dich mod_rewrite zur gewünschten Seite, ansonsten meine ich die Doku zu mysql_connect.) Gruß Christian Boltz --
Und bin grad auch zu faul nachzuschauen. Das hab ich schlicht aus den autoconf-Makefiles... ;) Automake-Makefiles, autoconf-Makefile's gibt es nicht ;) [> David Haller und Ralf Corsepius in suse-programming]
participants (3)
-
Christian Boltz
-
David Haller
-
Oliver Leue