MySQL Zugriff
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
MySQL Zugriff
So jetz bins ich ma wieder ^^
Also folgendes: Ich will auf ne MySQL Datenbank zugreifen. MySQL deshalb weil ich die Daten auch über PHP mitm Webserver ausgeben will. Die Sache soll möglichst Plattformabhängig sein da es sich dabei um eine Art Server handelt der auch (bzw. Hauptsächlich) unter Linux laufen soll.
Das ist so ne Art Userverwaltung:
User meldet sich an -> PB Proggi schreibts in die DB -> Anderer User geht auf die Internetseite -> PHP Skript holts aus der DB -> User sieht dass anderer User Online ist
Ist das irgendwie realisierbar?
Also folgendes: Ich will auf ne MySQL Datenbank zugreifen. MySQL deshalb weil ich die Daten auch über PHP mitm Webserver ausgeben will. Die Sache soll möglichst Plattformabhängig sein da es sich dabei um eine Art Server handelt der auch (bzw. Hauptsächlich) unter Linux laufen soll.
Das ist so ne Art Userverwaltung:
User meldet sich an -> PB Proggi schreibts in die DB -> Anderer User geht auf die Internetseite -> PHP Skript holts aus der DB -> User sieht dass anderer User Online ist
Ist das irgendwie realisierbar?
Die einfachste möglichkeit die mir gerade einfällt ist, die Daten an ein PHP-Script per POST zu senden, das PHP-Script schreibt diese Daten dann in die Datenbank, dass hat auch den Vorteil, dass du keine Zugangsdaten für die Datenbank ins Programm schreiben musst.
Wenn du es genauer erklärt haben willst oder vll. nen Example, schreib mich im Chat an
MFG Lukaso
Wenn du es genauer erklärt haben willst oder vll. nen Example, schreib mich im Chat an

MFG Lukaso

Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
Nein, das würd ich nicht machen (die Zugangsdaten per POST-Daten übergeben).the one and only hat geschrieben:Hm
Die PHP Skript Idee is lustig @bluejoke ich würde die Zugangsdaten dann per POST ans Skript übergeben dann können die normalen Besucher es nicht zweckentfremden
Aber wie Post Daten übergeben AFAIR (= As far as I remember) haben GPIs HTTP Funktionen kein POST Zeug
HTTP-Requests gehen unverschlüsselt über die Leitung, POST-Daten
genau so, die werden einfach nur unten ans Request drangehängt.
Ich hab mir was ausgedacht, was relativ sicher ist, wenn der Hacker den Algorythmus nicht weiß. Was anderes zum sicheren Übertragen von Passwörtern kenn ich nicht. Ich halte es sogar für enorm sicher. Ein möglicher Hacker kann nicht an das Passwort kommen, er kann nicht rausfinden, was sonst noch drin steckt, und selbst wenn könnte er nicht an das Passwort kommen (OK, mit BruteForce gehts schon, aber dagegen kann man sich wohl nicht schützen.
Vorgehensweise:
Gegebene Daten: MD5(Passwort) sowohl aufm Server (gespeichert) als auch aufm Client (MD5(Usereingabe))
Server-Adresse
Client fordert vom Server die eigene IP an, hängt diese als String hinten an das MD5(Passwort) und wendet darauf nochmal MD5 an.
Server empfängt den String, vergleicht ihn mit MD5(gespeichertesMD5(Passwort)+$_SERVER['REMOTE_ADDR'])
Hier der PHP-Code dafür, funktioniert sowohl mit GET als auch POST-Requests, man sollte aber das Passwort immer (bei jeder Anfrage) mitschicken - gibt keine Cookies oder Sessions, weil dann die Clientseite aufwändiger wird. Lässt sich natürlich mit Username erweitern u.s.w.
Im vorliegenden Code ist das Passwort in einer Datei im Ordner data untergebracht:
Dieser Ordner sollte natürlich nicht zugänglich sein, z.B. durch eine .htaccess Datei in diesem Ordner:
Den PB-Teil müsst ihr euch selber schreiben, hab ich noch nicht gemacht...
Simon
P.S.: Das funktioniert nicht mit Providern, die ständig die IP-Adresse des Clients wechseln, kann also bspw. bei AOL Probleme machen. In dem Fall sollte man Serverseitig temporär eine ID speichern, die mit einem Zufallsstring verknüpft ist.
Der Client macht also eine ServeMe-Anfrage, kriegt einen Zufallsstring und eine ID (dafür bietet sich dann natürlich eine SessionID an, dann übernimmt PHP gleich das speichern der Daten), verschlüsselt das Passwort mit dem Zufallsstring anstatt der IP-Adresse und sendet die ID mit.
Vorgehensweise:
Gegebene Daten: MD5(Passwort) sowohl aufm Server (gespeichert) als auch aufm Client (MD5(Usereingabe))
Server-Adresse
Client fordert vom Server die eigene IP an, hängt diese als String hinten an das MD5(Passwort) und wendet darauf nochmal MD5 an.
Server empfängt den String, vergleicht ihn mit MD5(gespeichertesMD5(Passwort)+$_SERVER['REMOTE_ADDR'])
Hier der PHP-Code dafür, funktioniert sowohl mit GET als auch POST-Requests, man sollte aber das Passwort immer (bei jeder Anfrage) mitschicken - gibt keine Cookies oder Sessions, weil dann die Clientseite aufwändiger wird. Lässt sich natürlich mit Username erweitern u.s.w.
Code: Alles auswählen
<?php
require "data/pb2php.conf.php";
$ip = $_SERVER['REMOTE_ADDR'];
switch ($_REQUEST['request'])
{
case "ip":
echo $ip;
break;
case "eval":
if ($_REQUEST['pass']==MD5($pass.$ip))
{
eval("echo $pass;");
break;
}
default:
echo "IP: ".$ip."<br>";
echo "Passwort verschlüsselt: ".MD5($pass.$ip);
break;
}
Code: Alles auswählen
<?php
$pass = "passwort"
?>
Code: Alles auswählen
Deny from all
ErrorDocument 403 http://localhost/pb2php.php
Simon
P.S.: Das funktioniert nicht mit Providern, die ständig die IP-Adresse des Clients wechseln, kann also bspw. bei AOL Probleme machen. In dem Fall sollte man Serverseitig temporär eine ID speichern, die mit einem Zufallsstring verknüpft ist.
Der Client macht also eine ServeMe-Anfrage, kriegt einen Zufallsstring und eine ID (dafür bietet sich dann natürlich eine SessionID an, dann übernimmt PHP gleich das speichern der Daten), verschlüsselt das Passwort mit dem Zufallsstring anstatt der IP-Adresse und sendet die ID mit.
Windows XP Pro SP2 - PB 4.00Ich bin Ausländer - fast überall
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
Ja ich weiß ich bin spät dran aber ich hab in letzter Zeit nimmer an der Sache weiter gemacht...
Danke erstmal an alle aber was ich eigentlich gesucht hätte wäre so ne Art API Beschreibung.
MySQL muss ja irgendne API für andere Anwendungen haben. Ein PHP Skript wird ja auch nur vom PHP Interpreter ausgeführt, der greift irgendwie auf MySQL zu aber wie würd mich interessieren. Ein PHP Skript wird er ja nicht gerade dazu verwenden
Danke erstmal an alle aber was ich eigentlich gesucht hätte wäre so ne Art API Beschreibung.
MySQL muss ja irgendne API für andere Anwendungen haben. Ein PHP Skript wird ja auch nur vom PHP Interpreter ausgeführt, der greift irgendwie auf MySQL zu aber wie würd mich interessieren. Ein PHP Skript wird er ja nicht gerade dazu verwenden

Für mysql ist auch ein odbc treiber verfügbar. damit kannst du aus pb bestens auf die mysql zugreifen
http://dev.mysql.com/doc/mysql/en/odbc-connector.html
http://dev.mysql.com/doc/mysql/en/odbc-connector.html
manchmal weiß auch ich etwas, ich erinnere mich bloß schlecht daran
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
@bluejoke:
Schon mal was von IP Hijacking gehört?
Da hätten wir dann auch schon die Schwachstelle in deiner Methode. Es wäre effektiver, wenn man die MAC Adresse der Netzwerkkarte nehmen würde, an die ranzukommen ist wesentlich schwerer.
Wobei deine Methode noch weitaus eleganter und einfacher auszutricksen ist:
1. Ich höre deine Pakete ab. Auf diese Weise bekomme ich einerseits recht schnell raus, an welches Skript du deine Daten schickst. Da der Aufbau einer IP Adresse recht bekannt ist kann ich andererseits sehr schnell das MD5 verschlüsselte Passwort bekommen
2. Ich warte ne Weile ab, bis du dich ausgeloggt hast
3. Ich schicke eine Anfrage an den Server, der Server speichert meine IP Adresse
4. Ich hänge meine IP an das MD5 verschlüsselte Passwort ran und sende es an deinen Server
5. Der Server denkt du hast dich eingeloggt
- Fin -
Schon mal was von IP Hijacking gehört?
Da hätten wir dann auch schon die Schwachstelle in deiner Methode. Es wäre effektiver, wenn man die MAC Adresse der Netzwerkkarte nehmen würde, an die ranzukommen ist wesentlich schwerer.
Wobei deine Methode noch weitaus eleganter und einfacher auszutricksen ist:
1. Ich höre deine Pakete ab. Auf diese Weise bekomme ich einerseits recht schnell raus, an welches Skript du deine Daten schickst. Da der Aufbau einer IP Adresse recht bekannt ist kann ich andererseits sehr schnell das MD5 verschlüsselte Passwort bekommen
2. Ich warte ne Weile ab, bis du dich ausgeloggt hast
3. Ich schicke eine Anfrage an den Server, der Server speichert meine IP Adresse
4. Ich hänge meine IP an das MD5 verschlüsselte Passwort ran und sende es an deinen Server
5. Der Server denkt du hast dich eingeloggt
- Fin -
Zuletzt geändert von Sebe am 16.06.2005 20:08, insgesamt 1-mal geändert.