Not a member yet? Register for your free account!


Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:13

  • 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 ...

Reply
 
LinkBack Thread Tools
Old 08-23-2011, 18:16   #1
c++ & java 4 live!

 
SandMann016's Avatar
 
Join Date: Feb 2009
Posts: 1,722
Received Thanks: 3,545
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

SandMann016 is online now  
Old 08-23-2011, 23:51   #2
Beasts&Bumpkins

 
boxxiebabee's Avatar
 
Join Date: May 2008
Posts: 598
Received Thanks: 218
Quote:
Originally Posted by SandMann016 View Post
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.
boxxiebabee is offline  
The Following User Says Thank You to boxxiebabee For This Useful Post:
SandMann016 (08-24-2011)
Old 08-24-2011, 15:29   #3
c++ & java 4 live!

 
SandMann016's Avatar
 
Join Date: Feb 2009
Posts: 1,722
Received Thanks: 3,545
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
SandMann016 is online now  
Old 02-21-2012, 08:58   #4
Whiteh4t
 
djrazr93's Avatar
 
Join Date: Feb 2011
Posts: 182
Received Thanks: 48
Blog Entries: 1
Das ganze ist wie du siehst extrem unsicher und nicht sehr ausgereift
djrazr93 is offline  
Old 02-21-2012, 18:01   #5
Senior Member
 
Join Date: Jul 2010
Posts: 304
Received Thanks: 145
Quote:
Originally Posted by Lizzaran View Post
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.
SmackJew is offline  
The Following 2 Users Say Thank You to SmackJew For This Useful Post:
djrazr93 (02-21-2012), Yazzn (: (03-10-2012)
Old 02-22-2012, 00:46   #6
fail


 
MrSm!th's Avatar
 
Join Date: Jun 2009
Posts: 12,983
Received Thanks: 11,700
Quote:
Originally Posted by SmackJew View 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.
MrSm!th is offline  
Old 02-22-2012, 09:19   #7
Member
 
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)
[Only registered and activated users can see links. ]

viel Erfolg,
cheesecake
käsekuchen11elf is offline  
Old 02-22-2012, 18:24   #8
fail


 
MrSm!th's Avatar
 
Join Date: Jun 2009
Posts: 12,983
Received Thanks: 11,700
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.
MrSm!th is offline  
Old 02-22-2012, 20:17   #9
Senior Member
 
Join Date: Jul 2010
Posts: 304
Received Thanks: 145
Quote:
Originally Posted by MrSm!th View Post
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?
SmackJew is offline  
Old 02-22-2012, 20:22   #10
ლ(ಠ益ಠლ)

 
Metin2Spieler97's Avatar
 
Join Date: Oct 2007
Posts: 9,094
Received Thanks: 11,078
Er meint die Daten zum Einloggen in MySQL.

Hier noch was amüsantes, was ziemlich gut zu diesen Thema passt. :>
Spoiler:
Metin2Spieler97 is offline  
The Following User Says Thank You to Metin2Spieler97 For This Useful Post:
jacky919 (02-22-2012)
Reply

Thread Tools




All times are GMT +2. The time now is 18:13.


Powered by vBulletin®
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2010, Crawlability, Inc.