Did you know? elitepvpers has its own image host, epvpimg.com.
C++ Online Login-System (beratung)
This is a discussion on C++ Online Login-System (beratung) within the C/C++ forum part of the Coders Den category; Hallo zusammen ich möchte ein Login system erstellen das ich mit C++ nutzen kann...
Also man kann MySql ja eigentlich ...
Hallo zusammen ich möchte ein Login system erstellen das ich mit C++ nutzen kann...
Also man kann MySql ja eigentlich in C++(Native!) benutzen, aber das schaffe ich im momment noch nicht hat jemand evnt. ein Tutorial oder der gleichen?
MySql kenntnisse habe ich genauso wie Php da wäre meine Idee wäre es möglich das Login system in Php zu schreiben und dann mit C++ die entsprechende datei aufrufen (mit zB GET) sodass ich den Benutzer namen und Benutzerpasswort registrieren kann mit einem einfachem Insert...
das wäre ja eigentlich nicht schwer, aber gibt es auch dazu ein Tutorial oder einen kleinen Plan an den man sich halten könnte?
Weil ich möchte ein C++ Projekt erstellen in das man sich erst einloggen muss und dann wird abgerufen ob der User ein Premium-Account ist oder ein Normal-Account...
Ich habe das gleiche schon in Visual Basic geschaft, aber es ist mir einfach zu gefährlich, da VB sehr leicht zu decompilen ist (auch mit Smart Assembly...).
Ich hoffe ihr wisst ein paar gute Links die ich mich ansehen kann (in meinem Google habe ich leider nichts gutes gefunden )
Hallo zusammen ich möchte ein Login system erstellen das ich mit C++ nutzen kann...
Also man kann MySql ja eigentlich in C++(Native!) benutzen, aber das schaffe ich im momment noch nicht hat jemand evnt. ein Tutorial oder der gleichen?
MySql kenntnisse habe ich genauso wie Php da wäre meine Idee wäre es möglich das Login system in Php zu schreiben und dann mit C++ die entsprechende datei aufrufen (mit zB GET) sodass ich den Benutzer namen und Benutzerpasswort registrieren kann mit einem einfachem Insert...
das wäre ja eigentlich nicht schwer, aber gibt es auch dazu ein Tutorial oder einen kleinen Plan an den man sich halten könnte?
Weil ich möchte ein C++ Projekt erstellen in das man sich erst einloggen muss und dann wird abgerufen ob der User ein Premium-Account ist oder ein Normal-Account...
Ich habe das gleiche schon in Visual Basic geschaft, aber es ist mir einfach zu gefährlich, da VB sehr leicht zu decompilen ist (auch mit Smart Assembly...).
Ich hoffe ihr wisst ein paar gute Links die ich mich ansehen kann (in meinem Google habe ich leider nichts gutes gefunden )
LG.SandMann
Als erstes, vb.net + aktuellste version von smart assembly ist sicherlich gleich schwer zu decompilen wie IL code.
So, zum C++ Projekt.
Sende doch einfach einen "POST"-Befehl an ein PHP Script welches dir dann bestimmte Werte zurück gibt, die du dann überprüfst ob der user existiert, premium ist oder what ever.
Und direkt mit dem Programm selbst solltest du keine SQL-Verbinung herstellen -> Reverse Engine.
Der Vorteil darin liegt nicht nur darin das die SQL Daten nicht im Programm enthalten sind, sondern auch, das die meisten Free-Hoster (sofern du einen hast) keinen externen Zugriff auf die Datenbank erlauben.
How-To's dazu findest du bestimmt genügen dazu bei Google.
hier z.b.: [Only registered and activated users can see links. ]
Ansonsten wass du noch machen könntest, eine sichere (verschlüsselte) Verbindung mit dem Server herstellen (OpenSSL).
Last edited by boxxiebabee; 08-23-2011 at 23:53.
The Following User Says Thank You to boxxiebabee For This Useful Post:
Vielen dank genau das meine ich ob es sicherheits lücken(reversing...etc gibt...)
Deshalb ist Php die beste methode danke ...
Ich weiß das die ganzen Free hoster keinen externen zugriff erlauben... ich habe ja bereits geschrieben das ich es in vb.net geschafft habe...(d.h. ich benutze meinen eigenen Server )
Ein umgedrehter Motor also, hm? Klingt gefährlich!
Was genau möchtest du denn da reversen? Was du beim Reversen des Programms siehst ist einzig und allein wie das Programm ein SQL Query schickt, und, Überraschung, das macht es wie alle anderen Programme auch. Die einzige Sicherheitslücke hierbei wird deine fehlende Programmiererfahrung sein, ich stelle mir da sowas vor:
Code:
if(premiumQuery()) {
user->setPremium(true);
}
Das patcht dir meine kleine Schwester sogar während sie gerade keine Luft kriegt weil Justin Bieber vor der Tür steht. Was ich damit sagen will: Ob deine Verbindung nun über ein PHP Skript oder direkt von deinem Programm ausgeht ist ziemlich egal, am Ende musst du deinem Programm ohnehin mitteilen ob der User Premiumstatus hat oder nicht und demnach entsprechend Veränderungen vornehmen, und da setzt der Reverser an, und nirgendwo anders.
The Following 2 Users Say Thank You to SmackJew For This Useful Post:
Ein umgedrehter Motor also, hm? Klingt gefährlich!
Was genau möchtest du denn da reversen? Was du beim Reversen des Programms siehst ist einzig und allein wie das Programm ein SQL Query schickt, und, Überraschung, das macht es wie alle anderen Programme auch. Die einzige Sicherheitslücke hierbei wird deine fehlende Programmiererfahrung sein, ich stelle mir da sowas vor:
Code:
if(premiumQuery()) {
user->setPremium(true);
}
Das patcht dir meine kleine Schwester sogar während sie gerade keine Luft kriegt weil Justin Bieber vor der Tür steht. Was ich damit sagen will: Ob deine Verbindung nun über ein PHP Skript oder direkt von deinem Programm ausgeht ist ziemlich egal, am Ende musst du deinem Programm ohnehin mitteilen ob der User Premiumstatus hat oder nicht und demnach entsprechend Veränderungen vornehmen, und da setzt der Reverser an, und nirgendwo anders.
Der Vorteil eines PHP Scripts ist aber, dass die DB abstrahiert wird und man die Login Daten nicht sieht.
Noch sicherer wäre eine eigene Server Software, damit man ein eigenes Protokoll, Verschlüsselung, etc. einsetzen kann.
Schlussendlich trifft aber auch dein genannter Aspekt zu: Wenn die Überprüfung scheiße ist, bringt die beste Sicherheit bei der Kommunikation nichts.
Eine Sache die noch nicht genannt wurde - Wenn du wirklich vorhast ein verteiltes Client-Server System mit Login zu schreiben, solltest du dir vielleicht mal das Kerberos-Prinzip ansehen. Das ist ein Standardisiertes Verfahren zur sicheren Client-Server-Service Kommunikation, und könnte ungefähr das sein, was du brauchst.
Der Grundgedanke ist der, dass für jede Client-Server Verbindung ein eigener Schlüssel angefordert werden muss, der die Kommunikation symmetrisch verschlüsselt. Das hat den vorteil, dass man sich wirklich einloggen muss, weil man sonst diesen Schlüssel nicht erhält, und somit der Server nicht versteht was man von einem will -> schwer, wenn überhaupt, wegzupatchen
Durch die symmetrische Verschlüsselung besteht leider in der Kommunikation ein gewisses sicherheitsriskio, im Falle eines MITM-Angriffs könnte eine Verbindung möglicherweise kompromittiert werden, aber die eigentliche Stärke von Kerberos ist: kein Login -> keine Kommunikation
Lektüre: Kerberos (Informatik) [Only registered and activated users can see links. ]
Das hat den vorteil, dass man sich wirklich einloggen muss, weil man sonst diesen Schlüssel nicht erhält, und somit der Server nicht versteht was man von einem will -> schwer, wenn überhaupt, wegzupatchen
Das braucht dich aber nicht zu interessieren, wenn das ganze trotzdem clientside abläuft.
Als Beispiel ein schlechter VIP Hack mit dem Code von Smack:
Code:
if(premiumQuery()) {
user->setPremium(true);
}
setPremium aktiviert nun die Premium Funktionen im Hack.
Was interessiert dich dann noch die Server Kommunikation?
Das Entscheidende ist es, den Client vollständig an den Server zu binden, was aber nie vollständig möglich ist, irgendwas ist immer im Client, denn schließlich muss das ganze auf deinem Rechner ausgeführt werden.
Selbst Code Streaming etc. ist nicht unknackbar.