Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.11.2013, 20:17

Java Login Server

Hallo,

zurzeit entwickel ich an einem Login System für ein Spiel welches ich in Java geschrieben habe, daher das Spiel mit dem Server verbinden soll und dort dann nachfragen soll ob die Userdaten richtig sind (ich will kein MySQL) suche ich gerade eine Möglichkeit der Umsetzung.

Ich habe zwar das Buch "Java 7" von Galileo Computing aber zum Thema habe ich keine nützlichen Informatioen gefunden. Ich hoffe einer von euch kann mir antworten.


Mein Login hat die Felder
  • ServerIP
  • Username
  • Passwort

Vom Button her hat er
  • Login

Wenn der Spieler auf Login klickt soll durch das Button Event eine Verbindung zum Server hergestellt werden (die IP welche in ServerIP angegeben wird) und dann dort das MD5 Passwort und den Usernamen abfragen. Wie setze ich das um ?

Und meine Frage wäre des weiteren, der Server hat von mir bis jetzt eine billige Textdatei bekommen was natürlich überhaupt nicht schlau ist. Nun überlege ich wie ich am besten umsetze das die Daten sicher in eine Datei geschrieben werden. Hier würde ich mich freuen wenn mir einer auch sagen könnte ob ich bei Java irgendeine sichere Möglichkeit dazu finde. Die Datei soll am Ende nur durch die Server Administration geöffnet und verändert werden dürfen und soll den Server mit der MeldunG "Hackangriff" beenden wenn ausserhalb vom Programm Änderungen vorgenommen wurden oder die Datei ausserhalb geöffnet wurde

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

2

20.11.2013, 21:42

Eine Lösung für Java die auf der Serverseite definitiv wenigstens mal State of the Art war: http://de.wikipedia.org/wiki/Java_Authen…ization_Service Ob dort mittlerweile was anderes aktuell ist, weiß ich nicht. Allerdings könnte das etwas Overkill sein. ;)

Und falls es bei der Datei bleibt, wer die Datei editieren darf sollte sich aus den Berechtigungen auf dem Dateisystem für diese Datei ergeben. Daher sollte die Serveranwendung dort wenig machen müssen.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

21.11.2013, 06:53

Die Datei soll am Ende nur durch die Server Administration geöffnet und verändert werden dürfen und soll den Server mit der MeldunG "Hackangriff" beenden wenn ausserhalb vom Programm Änderungen vorgenommen wurden oder die Datei ausserhalb geöffnet wurde
Das geht nicht. Dazu müsste irgendjemand loggen, wer Zugriffe auf die Datei ausführt.
Zum Rest:
- Daten würde ich eindeutig in einer DB mit Passwort ablegen und nicht in einer Datei, auf die irgendwie nur der Admin Zugriff haben darf (root?). Denn bei letzterem müsste die Anwendung auf demselben Rechte-Level laufen, was ich für sehr gefährlich halte, falls ein Exploit gefunden und genutzt wird. Bei einem modernen OS auf dem Server (oder einem alten Unix) würde es theoretisch reichen entsprechende Rechte auf die Datei zu setzen, nur darf root/admin eben trotzdem immer da ran.
- Verbindungen mit Sockets
- Verschlüsselung der Verbindung manuell oder via HTTPS - je nachdem was für Performance-Anforderungen Dein Spiel hat
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

4

21.11.2013, 09:22

Bitte keine MD5 Verschlüsselung verwenden (siehe http://md5.rednoize.com/), nimm SHA-256 oder so und benutze mindestens einen Zeitstempel oder einen zufälligen Wert als Salt, das musst Du dann einfach zusammen mit dem gehashten Passwort speichern. Du könntest Dir mal http://www.mapdb.org/ anschauen, wenn Du keine DB willst. Ich stimme da aber BlueCobold zu, sobald Du noch andere Daten zum Benutzer speichern willst, wirst Du sowieso eine Datenbank haben wollen. Bei der Argumentation hier http://www.sarahmei.com/blog/2013/11/11/…er-use-mongodb/ wird es sich zwar zu einfach gemacht, aber Dir wird es sicher ähnlich gehen, wenn Du Dein Spiel ausbauen möchtest und auf eine Textdatei vertraust. Du kannst Dir auch mal http://shiro.apache.org/ anschauen.

Werbeanzeige