PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Externe Applikation einbinden


mkn
15.09.2006, 17:33
Hallo vB Team,

Ich möchte eine exterene Applikation in PHP erstellen, die allerdings am vB 3.6 andockt und deren Login-Daten mit verwenden soll (damit es bequem wird für den User, und man nicht 2 Benutzerkonten braucht). Allerdings sind der Cookie-Password Hash und der in der vB_user abgelegte Password-Hash unterschiedlich.

Hat schon jemand herausgefunden bzw. kann mir jemand sagen, wie man von einem Hash auf den anderen kommt?

Die Cookiedaten sowie die Daten aus der vB_user Table kann ich auslesen, allerdings ist ein Vergleich auf "Gleichheit" nicht drin - da fehlt mir noch ein Teil des Algorithmus.

Jemand eine Idee? :confused:

Ahriman
15.09.2006, 17:53
Ich hab ein unabhängiges Browserspiel in meinem vB mit drin. Da habe ich einfach die Anmeldung von diesem Spiel so umgeschrieben, daß automatisch die vB-Login-Daten benutzt werden.

mkn
16.09.2006, 02:04
Jo die Frage wäre eben genau gewesen, wie Du das gemacht hast... d.h. WIE nutzt Dein Script den vB Login? Liest Du das Cookie aus? Setzt Du ein eigenes? etc.

Die Frage oben war, wie man einen dauerhaft sicheren Login bekommen kann, indem man den vB Mechanismus zur Authentifizierung verwendet und einbindet!

StGaensler
16.09.2006, 10:54
Das Prinzip ist recht einfach:
$cookie_hash = md5($hash_in_db . $lizenznummer);

Somit kannst du dann den Passwort-Hash überprüfen.

Viele Grüße,
Stefan

Ahriman
16.09.2006, 11:04
Den Login in das Spiel habe ich umgesetzt indem ich in der Login-Seite die gloabal.php eingebunden habe und dann einfach die Vars vbulletin->userinfo['username'] und vbulletin->userinfo['password'] readonly in der Maske benutze. Der Spieler muß sich dann halt noch die Spielrunde aussuchen.

Im Übrigen - 100% Sicherheit gibt es nicht. ;)

mkn
16.09.2006, 18:53
Okay, Problem gelöst - hier kommt mein PHP Code:

$userid=$_COOKIE[$cookienameuserid];
$userpassword=$_COOKIE[$cookienameuserpassword];
//these both depend on your settings easiest way to figure out is opening mozilla view the cookies and just look for them... most commonly something related to your domainname. hopefully your application and the VBboard share the same domain otherwise it gets tricky here.
$vbdatabase = mysql_connect($vbdbhost,$vbdbuser,$vbdbpassword);
mysql_select_db($vbdbname, $vbdatabase); //these should be selfdescriptive for anyone who already did php+mysql.
$sql="SELECT userid,username,password FROM ".$vbtablenameuserdata." WHERE userid ='".$userid."'"; //normally $vbtablenameuserdata = "vb3_user" or something like that
$result=mysql_query($sql, $vbdatabase);
$row = mysql_fetch_row($result);
if($userpassword == md5($row[2].'your license number or a variable containing it')){
do what ever you must ^^
}

StGaensler
17.09.2006, 18:53
Super, nur eine Sache würde ich dir noch raten: $userid hast du nicht überprüft, ob das wirklich eine UserID sein könnte - wenn da "Schmarrn" steht, nimmst du es trotzdem an, und somit ist eine SQL-Injection möglich. Ändere die erste Zeile noch folgendermaßen ab:$userid=intval($_COOKIE[$cookienameuserid]);

Viele Grüße,
Stefan

Don El Greeko
28.09.2006, 20:43
Hi!

Frage, was bedarf es dieses Codes? Muss man die Domain des externen Programmmes, wenn dies auf einer anderen Domain liegt, in den Einstellungen mit angeben?

THEORETISCH brauche ich die globals.php doch gar nicht um die zu lesen, oder? Eigentlich reicht doch nur, dass das VBoard auf der eigentlichen Internetseite die "neue" domain einfach mit in die Cookies schreibt, oder sehe ich das falsch?

StGaensler
28.09.2006, 22:41
Welche Einstellungen? Welche andere Domain? Wo kommt die her, was ist dort drauf?
"Cookie-Sharing" zwischen zwei Domains ist nicht möglich.

Welche "die" willst du lesen, wofür du die globals.php nicht brauchst?

Irgendwie wirft dein Post mehr Fragen auf, als ich beantworten kann... Erläutere dein Problem bitte einmal ausführlicher.

Viele Grüße,
Stefan

Don El Greeko
28.09.2006, 23:25
Sorry, hatte mehr "nachgedacht" als geschrieben :-P *vor lauter Eifer*

War immer noch dieselbe Problemstellung vom Thread mit den Cookies von den 2 Servern, aber anscheinend hab ich jetzt ne Lösung gefunden...danke und sorry ;)

StGaensler
01.10.2006, 18:12
Stimmt, jetzt wirds klarer :D

Kein Problem :)

Viele Grüße,
Stefan