KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Irc-Chat mit MyBB-Login
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich arbeite gerade daran, wie man den Irc-Chat mit MyBB über die MySQL-Datenbank verbinden kann und somit auch der Nutzername im Chat erscheint - Es funktioniert -> Doch leider funktioniert die Passwort Funktion nicht
- Somit man das Passwort manuell über " /msg NickServ IDENTIFY passwort " eingeben muss.

Ich benötige Hilfe für die Passworteingabe, was aber nicht sehr schlimm ist, da ich für die User-Identifikation was überlegt habe -> Beim überfahren eines Benutzers, erscheint unten ein Text z.B "Ist cool" - Da habe ich mir was tolles überlegt Wink.

Zur Frage: Wäre es besser einen MyBB-Login zu machen?

*Update*
Umfrage hinzugefügt

Unbekannt :
Ich arbeite gerade daran, wie man den Irc-Chat mit MyBB über die MySQL-Datenbank verbinden kann und somit auch der Nutzername im Chat erscheint - Es funktioniert -> Doch leider funktioniert die Passwort Funktion nicht


Das mit der Passworteingabe ist technisch gesehen gar nicht möglich. Die Passwörter liegen der Mybb Datenbank im Format md5(md5('salt').md5('passwort'). Ich kann mir kaum vorstellen dass dem IRC ein vergleichbarer Hash vorliegt. Außerdem hast du keinen Zugriff auf den Server von IRC-Mania.

Den Benutzername annehmen alleine dagegen ist nichts besonderes, einfach vor dem "JOIN" Befehl "NICK nickname" ins Socket senden.

Unbekannt :
Zur Frage: Wäre es besser einen MyBB-Login zu machen?


Ich persönlich finde es ganz in Ordnung wie es jetzt ist. Nur an ihrem Verhalten im Chat können einige User noch arbeiten Wink

@PSP-Hilfe: Hast mich falsch verstanden ^^.

PHP-Code:
<!param name="password" value="">
       <
param name="command1" value="join #PS3King.de">
       <
param name="command2" value=""


Das Passwort wird durch den MyBB-Login in der Url gespeichert. Durch einen PHP-Script ist der dann aufrufbar.
Und ich meine man kann sich mit dem Nutzernamen auf der Login-Seite ein Loggen und er erscheint im Chat Wink.

PHP-Code:
<!param name="password" value="<?php echo $_GET['password'] ?>">
       <
param name="command1" value="join #PS3King.de">
       <
param name="command2" value=""


Edit:

Mal sehen was unser lieber Alex dazu meint. Wenn es ihn genehm ist, schicke ich ihn den Code auf Testbasis.

Was sollen mir deine Param HTML Tags jetzt genau sagen ?

Unbekannt :
@PSP-Hilfe: Hast mich falsch verstanden ^^.


Du willst doch dass wenn man oben im Forum auf Chat klickt und eingeloggt ist, sich automatisch der "IDENTIFY" Befehl sendet mit dem Passwort ? Ok alles klar.

In der Mybb Datenbank befindet sich für jeden User ein Passwort Hash und ein Salt der bei der Anmeldung erstellt wird.

Der Hash ist im Format md5(md5('salt').md5('password') gespeichert. Also der MD5 Wert vom md5 Wert des Salt´s + den md5 Wert des Passworts.

Beim Login gibst du dann dein Passwort ein, z.b. "123456". Angenommen sein Salt ist "ISiG3Pnk" wird dein Passwort dann verschlüselt: md5(md5('ISiG3Pnk').md5('123456')) == c2f5cad23aff17f7b4781f83843be8bb. Dieser Hash wird dann beim Login mit dem Hash in der Datenbank abgeglichen, falls true wird ein Cookie mit einer SessionID angelegt.

Was ich damit sagen will, das Passwort wird nirgendswo in Klartext gespeichert. Also wo willst du es auslesen um es an den IRC Client weiter zu geben ?

Unbekannt :
Das Passwort wird durch den MyBB-Login in der Url gespeichert. Durch einen PHP-Script ist der dann aufrufbar.


Du willst das Passwort über die URL weitergeben ? Und dann auch noch in Klartext ? Dir ist schon gewusst dass es dann auch über sämtliche Referer gesendet wird usw. ?

Juhu, mit der Methode kann ich mir mein Passwort auf die Stirn schreiben.

Sicherheit = 0
Umsetzung = 0
Funktion = 0

Dagegen!
OMG? Was willst du mit der Idee?
Die ist nicht umsetzbar, du kommst nicht an das PW ran, und an die IRC Server genauso wenig!

Naja sowas konnte ja nur von dir kommen...
Die idee ist zwar gut gemeint, aber es ist nicht drin HTK!

PSP-Hilfe :
Was sollen mir deine Param HTML Tags jetzt genau sagen ?

Unbekannt :
@PSP-Hilfe: Hast mich falsch verstanden ^^.


Du willst doch dass wenn man oben im Forum auf Chat klickt und eingeloggt ist, sich automatisch der "IDENTIFY" Befehl sendet mit dem Passwort ? Ok alles klar.

In der Mybb Datenbank befindet sich für jeden User ein Passwort Hash und ein Salt der bei der Anmeldung erstellt wird.

Der Hash ist im Format md5(md5('salt').md5('password') gespeichert. Also der MD5 Wert vom md5 Wert des Salt´s + den md5 Wert des Passworts.

Beim Login gibst du dann dein Passwort ein, z.b. "123456". Angenommen sein Salt ist "ISiG3Pnk" wird dein Passwort dann verschlüselt: md5(md5('ISiG3Pnk').md5('123456')) == c2f5cad23aff17f7b4781f83843be8bb. Dieser Hash wird dann beim Login mit dem Hash in der Datenbank abgeglichen, falls true wird ein Cookie mit einer SessionID angelegt.

Was ich damit sagen will, das Passwort wird nirgendswo in Klartext gespeichert. Also wo willst du es auslesen um es an den IRC Client weiter zu geben ?

Unbekannt :
Das Passwort wird durch den MyBB-Login in der Url gespeichert. Durch einen PHP-Script ist der dann aufrufbar.


Du willst das Passwort über die URL weitergeben ? Und dann auch noch in Klartext ? Dir ist schon gewusst dass es dann auch über sämtliche Referer gesendet wird usw. ?


Upps ich meinte der Login-Name wird in der Url gespeichert z.B Login mit Unbekannt : pspking.de/chat.php?user=unbekannt.
Der Zugang zu Chat.php ist durch den Login geschützt Wink.

Die Login-Daten werden mittels MySQL gelesen, dann wird über Location "header("Location: chat.php?user=".$_POST["Name"]);" auf chat.php?user=XYZ weitergeleitet und über einen GET-Befehl dies aus der Url gelesen Wink. Das Passwort bleibt geschützt - Was gesendet wird ist nur der Username Big Grin.

Melde dich, wenn du es fertig hast...
...ein schönes Leben noch.

MfG
Ich schicke den Code mal alexking.

Unbekannt :
Upps ich meinte der Login-Name wird in der Url gespeichert z.B Login mit Unbekannt : pspking.de/chat.php?user=unbekannt.
Der Zugang zu Chat.php ist durch den Login geschützt Wink.


Das ist mehr oder weniger unnötig da dir in Mybb die benötigten Daten schon zur verfügung stehen

PHP-Code:
<?
global $mybb;
// Liefert dir einen Array mit den User Daten
$user get_user($mybb->user['uid']);
// Beispiele:
echo $user['username'].'\n';
echo 
$user['usergroup'];  \\ Für Gruppe z.bDeveloperModeratorusw.
?>


Unbekannt :
Die Login-Daten werden mittels MySQL gelesen,


Den Username (Nicht die Login-Daten weil wo willst du das Passwort bitte auslesen?) brauchst du dann nicht mehr mittels MySQL auslesen Wink

Unbekannt :
dann wird über Location "header("Location: chat.php?user=".$_POST["Name"]);" auf chat.php?user=XYZ weitergeleitet und über einen GET-Befehl dies aus der Url gelesen Wink. Das Passwort bleibt geschützt - Was gesendet wird ist nur der Username Big Grin.


Wenn du Glück hast unterstützt das Javaapplet von sich aus schon solche Inputs wie Username. Wenn nicht brauchst du davon den Sourcecode oder brauchst ein neues Applet, und das alles nur damit man keine 2 Sekunden mehr investieren muss seinen Nickname einzugeben...

PHP-Code:
<?php 
// Vor diesem Code dürfen keine Zeichen oder Absätzte stehen
// (C) By Kafei - YouDevs

include("config.php"); 
if (isset(
$_POST["Name"])) { 
  
  
$mysqlconnect mysql_connect("localhost","DB-Uname","DB-Pass"); 
  
$selectdb mysql_select_db("DB-Name"$mysqlconnect); 
    
  
$query mysql_query("SELECT * FROM mybb_users WHERE username = '".$_POST["Name"]."'"); 
  
$array mysql_fetch_array($query); 
   
  
//echo md5(md5($array["salt"]).md5($_POST["Passwort"])); 
  //echo "<br>"; 
  //echo $array["password"]; 
    
  
if(md5(md5($array["salt"]).md5($_POST["Passwort"])) == $array["password"]) { 
    
$username $_POST["Name"]; 
    
$_SESSION[$username] = true
    
header("Location: chat.php?user=".$_POST["Name"]);   
    }
  } 
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
  <title>Login</title> 
 </head> 
<body> 

<h2>Login</h2>

<?php 
echo '<form action="' $_SERVER['SCRIPT_NAME'] . '" method="post"> 
Name: <input type="text" name="Name" size="12">  
Passwort: <input type="password" name="Passwort" size="12">  
<input type="submit" value="ok"></form>'

?> 

</body> 
</html> 

Unbekannt :
if(md5(md5($array["salt"]).md5($_POST["Passwort"])) == $array["password"]) {
$username = $_POST["Name"];
$_SESSION[$username] = true;
header("Location: chat.php?user=".$_POST["Name"]);
}


Ok das ist möglich so in der Art. Aber was bringt es dann ? Man muss doch dann trotzdem nochmal sein Passwort eingeben wenn man auf Chat klickt. Was macht es da noch für einen Sinn das Passwort extra mit dem Mybb abzugleichen wenn es doch im IRC ein ganz anderes sein kann ?

Außerdem würde ich dir raten die Strings serverseitig zu bereinigen da man bei deinem jetzigen Script ohne weiteres seinen eigenen MySQL Query injecten und somit die ganze Datenbank unter kontrolle bekommen kann.

EDIT weil HTK es nicht glauben will:
Wenn das jetzt so wie in deinem Code hier in PSPKing eingebaut wäre könnte man folgendermaßen vorgehen:

Der Query lautet ja:
"SELECT * FROM mybb_users WHERE username = '".$_POST["Name"]."'"

$_POST['Name'] kommt aus dem Formularelement wo man den Username eingibt.

Im Normalfall gibt man seinen Username ein:
"SELECT * FROM mybb_users WHERE username = 'PSP-Hilfe'"

Wenn man jetzt in das Feld eingibt:
psp-hilfe'; UPDATE mybb_users SET password = ... WHERE username = 'Alexking

Sieht der Query so aus:
"SELECT * FROM mybb_users WHERE username = 'psp-hilfe'; UPDATE mybb_users SET password = ... WHERE username = 'Alexking'"

Dadurch würde man den Passworthash überschreiben, natürlich müsste man vorher erstmal den Salt auslesen und ein neues Passwort encrypten.

PSP-Hilfe :
[quote=Unbekannt]
if(md5(md5($array["salt"]).md5($_POST["Passwort"])) == $array["password"]) {
$username = $_POST["Name"];
$_SESSION[$username] = true;
header("Location: chat.php?user=".$_POST["Name"]);
}


Ok das ist möglich so in der Art. Aber was bringt es dann ? Man muss doch dann trotzdem nochmal sein Passwort eingeben wenn man auf Chat klickt. Was macht es da noch für einen Sinn das Passwort extra mit dem Mybb abzugleichen wenn es doch im IRC ein ganz anderes sein kann ?

EDIT:

Wenn 10 mal Nein gesagt wurde in der Umfrage, darf der Thread getötet werden Wink.

Hab das Problem in meinem Post oben mal erklärt.
So. PSP-Hilfe du hast vollkommen Recht - Würde eh nichts bringen.
Deshalb, habe ich eine Idee:

In den Chat mit einer einfachen Namens-Eingabe einloggen, ergo der User kann sein Name in das Eingabefeld schreiben und Los gehen ohne unten den Namen nochmals einzugeben.

Pro
- Der User kann ganz einfach sich einloggen
- Man wird nicht mehr im Chat gefragt darüber
- Geht schneller
- Man wird von Bots mit dem richtigen Nick begrüßt!

Contra:
- Man muss sein Passwort im Chat über "/msg NickServ IDENTIFY" eingeben (was nicht sehr schlimm ist).

Der Code ist bearbeitet und benötigt keine Datenbank-Verbindung und XSS-Lücken werden schon vom Forum-Quellcode gefiltert.
Seiten: 1 2 3
Referenz-URLs