|
You last visited: Today at 18:01
Advertisement
C++ Online Login-System (beratung)
Discussion on C++ Online Login-System (beratung) within the C/C++ forum part of the Coders Den category.
08/23/2011, 18:16
|
#1
|
elite*gold: 0
Join Date: Feb 2009
Posts: 2,715
Received Thanks: 5,305
|
C++ Online Login-System (beratung)
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
|
|
|
08/23/2011, 23:51
|
#2
|
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
|
Quote:
Originally Posted by SandMann016
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.:
Ansonsten wass du noch machen könntest, eine sichere (verschlüsselte) Verbindung mit dem Server herstellen (OpenSSL).
|
|
|
08/24/2011, 15:29
|
#3
|
elite*gold: 0
Join Date: Feb 2009
Posts: 2,715
Received Thanks: 5,305
|
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  )
Also Vielen danke nochmal
LG.SandMann016
|
|
|
02/21/2012, 08:58
|
#4
|
elite*gold: LOCKED
Join Date: Feb 2011
Posts: 194
Received Thanks: 50
|
Das ganze ist wie du siehst extrem unsicher und nicht sehr ausgereift
|
|
|
02/21/2012, 18:01
|
#5
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Quote:
Originally Posted by Lizzaran
Reverse Engine.
|
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.
|
|
|
02/22/2012, 00:46
|
#6
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by SmackJew
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.
|
|
|
02/22/2012, 09:19
|
#7
|
elite*gold: 0
Join Date: Feb 2012
Posts: 37
Received Thanks: 10
|
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)
viel Erfolg,
cheesecake
|
|
|
02/22/2012, 18:24
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
|
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.
|
|
|
02/22/2012, 20:17
|
#9
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Quote:
Originally Posted by MrSm!th
Der Vorteil eines PHP Scripts ist aber, dass die DB abstrahiert wird und man die Login Daten nicht sieht.
|
Wie soll denn jemand der das Programm herunterlädt und reverst Userdaten anderer User sehen?
|
|
|
02/22/2012, 20:22
|
#10
|
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
|
Er meint die Daten zum Einloggen in MySQL.
Hier noch was amüsantes, was ziemlich gut zu diesen Thema passt. :>
|
|
|
02/22/2012, 22:05
|
#11
|
elite*gold: 0
Join Date: Feb 2012
Posts: 37
Received Thanks: 10
|
Quote:
Originally Posted by MrSm!th
Das braucht dich aber nicht zu interessieren, wenn das ganze trotzdem clientside abläuft.
|
Richtig. Kerberos funktioniert natürlich nur, wenn die kritische Funktionalität hinter einem Login auf einem Server liegt 
alles andere ist sowieso nie richtig dicht zu kriegen.
|
|
|
02/22/2012, 22:45
|
#12
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
"Funktioniert" muss man aber in Anführungszeichen setzen, denn alles lässt sich cracken.
Es geht um Software, die auf dem PC ausgeführt wird, wir sind noch nicht so weit in der Cloud, dass alles auf dem Server läuft und der PC nur streamt.
Und solange der PC selbst etwas ausführt (bei Hacks ist das zb. nötig, denn anders kann man nicht in das Spiel eingreifen), gibt es auch Schwachstellen, die man mit genügend Ergeiz und Geduld attackieren kann.
|
|
|
02/24/2012, 13:29
|
#13
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Quote:
Originally Posted by Metin2Spieler97
Er meint die Daten zum Einloggen in MySQL.
|
Ja und? Sind doch deine Daten, interessiert dich als Nutzer doch nicht ob die im Prozess stehen.
|
|
|
02/26/2012, 00:21
|
#14
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Wat?
Die Nutzerdaten sind doch nicht die Login Daten für die DB oO
|
|
|
02/28/2012, 21:24
|
#15
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Quote:
Originally Posted by MrSm!th
Wat?
Die Nutzerdaten sind doch nicht die Login Daten für die DB oO
|
Nein, welche Daten sollte denn das Programm enthalten, die ein Reverser nicht sehen sollte? Da sind entweder die eingegebenen Nutzerdaten die dann über ein Hash des Passworts, welcher von der DB ans Programm zurückkommt, abgeglichen werden, oder der DB Login, und was interessiert es dich ob jemand irgendwelche read-only Logindaten deiner DB hat?
|
|
|
All times are GMT +1. The time now is 18:01.
|
|