Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Sicherheit eines JAVA-Chats mit Datenbank

Diskussion: Sicherheit eines JAVA-Chats mit Datenbank im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi Leute, mein Kumpel & me wollen ne kleine Community erschaffen. Diese sollte auch einen Chat haben. Mit Chats ...

Antwort
Alt 12.10.05, 20:25   #1 (permalink)
404
 
Benutzerbild von 404
 
Registriert seit: 28.11.04
404 Leistung: Z3
404 eine Nachricht über ICQ schicken
Likes: 0
Smile Sicherheit eines JAVA-Chats mit Datenbank

Anzeige

Hi Leute,

mein Kumpel & me wollen ne kleine Community erschaffen. Diese sollte auch einen Chat haben. Mit Chats ist das ja immer so eine Sache. Da ich mich mit PHP gut auskenne, würde ich das Teil gern in PHP schreiben - er hingegen schwört auf einen JAVA.
Allerdings kann ich mir nicht vorstellen, dass dieser genauso sicher sein soll wie z.B. ein PHP Chat mit MySQL-Datenbank. Denn bei Java ist es dem geübten User möglich (mit Hilfe eines Decompilers) an den Quellcode zu kommen. Da ich mich mit Java nunmal überhaupt noch net auskenne, wollte ich mal eure Meinungen dazu hören.
Wie sicher ist eigentlich ein Java Chat der eine Datenbank nutzt? Gern auch Möglichkeiten, wie man einen Java-Chat sicher / sicherer machen kann und was Tipps, man vermeiden sollte. THX :D

__________________
Major Fault, General Error and Colonel Panic came together to celebrate timeout.


------------------------------------------------
http://www.shick.de/
------------------------------------------------
404 ist offline   Mit Zitat antworten
Alt 12.10.05, 21:16   #2 (permalink)
 
Registriert seit: 10.10.05
Gottzilla Leistung: Facit NTK
Gottzilla eine Nachricht über ICQ schicken
Likes: 0
Standard

Ich denke PHP ist hier die bessere Lösung. Für Java braucht der User erstmal das Plug-In und du musst jedemenge Sicherheitsbeschränkungen (Sandbox) beachten, wenn du das Applet (oder solls was anderes sein? WebStart z. B.) nicht signieren willst.

btw: für was brauchst du bei nem Chat ne Datenbank?

Und du kannst mal suchen, irgendwo im Netz gibts den Code für einen Java-Chat (falls ihr euch doch dafür entscheidet und Probleme habt)
Gottzilla ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 13.10.05, 00:00   #3 (permalink)
 
Registriert seit: 13.11.04
The Dude Leistung: Facit NTK
Likes: 0
Standard

erst mal ist der wesentliche unterscheid, dass java auf dem client laeuft und php auf dem server. warum du meinst, die sicherheit waere gefaehrdet, weil jemand den quellcode einsehen kann ist mir nicht ganz klar. soll das java applet eine verbindung zur datenbank aufbauen? das wuerde ich lieber lassen. dann musst du den datenbankserver so konfigurieren, dass er verbindungen von ueberall annimmt, was imho ein vermeidbares sicherheitsrisiko darstellt. und in dem fall ist es natuerlich auch schlecht wenn der benutzer an den quellcode rankommt, falls da das passwort hardcodiert ist.

ausserdem find ich, wie Gottzilla auch schon gesagt hat, sollte man versuchen die funktionalitaet einer webseite von so wenig wie moeglich auf seite des clients abhaengig zu machen. bei nem php-basierten chat sieht der benutzer ja nur einfaches html.

bei dem php-zeux musst die bei einem chat, wie ueberall auch wo du vom client geschickte daten verarbeitest vorsichtig sein. lege fest welche zeichen erlaubt sind und filtere alle anderen weg. nicht andersrum, dabei vergisst man leicht was. z.b. reichen zahlen, klein und grossbuchstaben und ein paar sonderzeichen fuer smileys fuer einen chat.
die php funktionen strip_tags(), htmlentities() und urlencode() koennten dabei hilfreich sein. wenn du einfach die daten vom benutzer ungefiltert verarbeitest kannst du dir sql injection und cross-site scripting loecher einhandeln.
The Dude ist offline   Mit Zitat antworten
Alt 13.10.05, 00:06   #4 (permalink)
Senior Member
 
Registriert seit: 18.09.05
[starfoxx] Leistung: Facit NTK
Likes: 0
Standard

Grundsätzliche Frage, ist es intelligent einen Chat in PHP zu schreiben?
Wie soll das gehenen?
Wir dann einfach per js ein frame alle 0.5 sekunden ge-reloadet?
Macht das nicht eine riesige Serverbelastung?
Ist ein Server überhaupt schnell genug für sowas?
[starfoxx] ist offline   Mit Zitat antworten
Alt 13.10.05, 13:42   #5 (permalink)
 
Registriert seit: 18.07.05
Malo Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von [starfoxx]
Grundsätzliche Frage, ist es intelligent einen Chat in PHP zu schreiben?
Wie soll das gehenen?
Wir dann einfach per js ein frame alle 0.5 sekunden ge-reloadet?
Macht das nicht eine riesige Serverbelastung?
Ist ein Server überhaupt schnell genug für sowas?


0,5 Sekunden?

Ich würde ja das Minimum auf 2 Sekunden, und das Maximum auf 5 Sekunden legen

So frei einstellbar

Eventuell könnte man auch über 1.5 Sekunden nachdenken, aber schneller sollte das auf keinen Fall sein. Und mehr braucht man auch nicht unbedingt, würd ich sagen..

edit: Und um Serverauslastung zu sparen, könnte man ja, wenn beispielsweise eine "Away"-Funktion benutzt wird, den Updatetimeout erhöhen, z.B. von 1.5 Sekunden auf 2 oder 2.5 Sekunden.

Und natürlich auch automatisches Away-Setzen nach einer bestimmten Zeit...
Malo ist offline   Mit Zitat antworten
Alt 13.10.05, 17:37   #6 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

warum macht ihr nicht auf nem irc server nen channel auf und nutzt einen java-client dafuer?
soox ist offline   Mit Zitat antworten
Alt 13.10.05, 17:47   #7 (permalink)
 
Registriert seit: 18.07.05
Malo Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von soox
warum macht ihr nicht auf nem irc server nen channel auf und nutzt einen java-client dafuer?
Da wär man doch wieder davon abhängig, ob der User Java installiert hat oder nicht
Malo ist offline   Mit Zitat antworten
Alt 13.10.05, 20:22   #8 (permalink)
Moderator
 
Registriert seit: 17.10.01
soox Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von MaloDa wär man doch wieder davon abhängig, ob der User Java installiert hat oder nicht
von 404 wurde auch nicht das vorhandensein von java, sondern die sicherheit thematisiert
soox ist offline   Mit Zitat antworten
Alt 13.10.05, 21:05   #9 (permalink)
 
Registriert seit: 10.10.05
Gottzilla Leistung: Facit NTK
Gottzilla eine Nachricht über ICQ schicken
Likes: 0
Standard

Zum Thema Sicherheit:

Sollte das Passwort wirklich Hardcoded im Quelltext sein, kommste da leicht ran (auch wenn de vorher
obfuscatoren benutzt hast). Was mir aber immernoch unklar is, warum brauchst du ne DB anbindung?
Gottzilla ist offline   Mit Zitat antworten
Alt 14.10.05, 17:27   #10 (permalink)
404
Themenstarter
 
Benutzerbild von 404
 
Registriert seit: 28.11.04
404 Leistung: Z3
404 eine Nachricht über ICQ schicken
Likes: 0
Standard

erstmal danke für die vielen Antworten..

@gottzilla - Irgendwo muss man doch die Userprofile, Userpasswörter usw speichern... oder?
@soox - jo -IRC wäre ne möglichkeit - allerdings hat dann wieder nur die möglichkeit, die IRC bietet und kann selber nix hinzufügen.... Auserdem wäre da der ganz Spaß bei der Programmierung weg....
@Malo - so hatte ich mir den Chat auch vorgestellt - php mit DB & metarefresch bzw. per JS den Refresch...

@dude
Zitat:
erst mal ist der wesentliche unterscheid, dass java auf dem client laeuft und php auf dem server. warum du meinst, die sicherheit waere gefaehrdet, weil jemand den quellcode einsehen kann ist mir nicht ganz klar. soll das java applet eine verbindung zur datenbank aufbauen? das wuerde ich lieber lassen. dann musst du den datenbankserver so konfigurieren, dass er verbindungen von ueberall annimmt, was imho ein vermeidbares sicherheitsrisiko darstellt. und in dem fall ist es natuerlich auch schlecht wenn der benutzer an den quellcode rankommt, falls da das passwort hardcodiert ist.
Ja, genau darin sehe ich das Sicherheitsrisiko. Aber es sollte ja auch irgendwie möglich sein, die Datenbankverbindung mit PHP zu realisieren - und nur die Rückgabe an Java zu senden... bzw. bei der Eingabe nur den eigegebenen Text an die php datei zu senden. Diese prüft dann den Inhalt und speichert es in der DB. Das Passwort in Quelltext kommt nicht in Frage^^

----------

Wegen n Code für n Java chat - ich hab z.B. knuddelsl - das sieht dann z.B. so aus: MFC <- achtung - hässliche Website

Abgesehen davon, das es geld kostet, kann ich mir nicht vorstellen, das soetwas wirklich sicher ist.

cya...
__________________
Major Fault, General Error and Colonel Panic came together to celebrate timeout.


------------------------------------------------
http://www.shick.de/
------------------------------------------------
404 ist offline   Mit Zitat antworten
Alt 14.10.05, 18:24   #11 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
also sofern du an die php.ini bzw. SafeMode Off ist, würde ich in PHP eine Endlosschleife programmieren.
Pro durchlauf fragt diese die Datenbank ab, und gibt ggf. den neuen Eintrag aus (Stichwort: flush(); ).
Danach wird sie für xxx (Mirco)-Sekunden schalfengelegt.

Der User sieht dann zwar am Ladebalken, dass diese Seite noch nicht 'fertig' geladen ist, aber dennoch kann er schon Beiträge schreiben und es werden welche Ausgegeben.

Einen Reload ist die schlechteste Lösung.
Denn schon bei sehr wenig Personen verursacht das extremen Traffic (kenne Statistiken dazu), dazu kommt dann meistens noch das gehopse der Einträge und so weiter.

Entweder eine Endlosschleife per PHP, oder eine Verbindung (Schleife für z.B. 30 Sekunden, dann reload).
Alles andere kannst du vergessen.

Aber PHP ist nicht die wirklich Wahl für einen Chat.

Was ich dir empfehlen würde, wäre ein Java-Chat mittels IRC.
-Schont den Server
-Man kann auch mit IRC Tools (z.B. mIRC) sich einloggen
-Kein Passwort für Datenbank nötig.
-Keine extremviele Datenbankabfragen
-Viele vorgefertigte Chat-Lösungen
-Man kann fremde IRC-Server (z.B. Quakenet) kostenlos benutzen.

Also ich denke mal Java-Appelt + IRC-Server wird die beste Lösung sein, und so hat jedes OS Möglichkeit sich am Chat zu beteiligen.
Elderan ist offline   Mit Zitat antworten
Alt 14.10.05, 18:36   #12 (permalink)
 
Registriert seit: 10.10.05
Gottzilla Leistung: Facit NTK
Gottzilla eine Nachricht über ICQ schicken
Likes: 0
Standard

Wenn de mit Java über php in ne DB schreibst, kannstes auch gleich in php schreiben.

Joa, verschlüsselt irgendwo inner Datei am besten irgendwo mittendrin mitsamt jeder menger anderen kram, da dürfts eigentlich sicher sein. Dann noch über die Klasse n obfuscator drüberlaufen lassen, damit der lese-algo n bisschen unübersichtlicher wird und nochn Copyright verhängen, dass de ja im Fall der fälle denjenigen wenigstens verklagen kannst .

Java ansich is für nen Chat opti geeignet, aber von ner DB anbindung in nem Applet würd ich wie gesagt die Finger lassen (schon allein weilde des dann signieren müsstest und da haste dann nur 2 Möglichkeiten: 1. selber signieren, da wird dann aber nurn lebensmüder zustimmen oder 2. sich für teuer geld bei ner Firma signieren lassen). Wobei ich jetzt bestimmt scho zum 100. mal frag für was du ne Datenbank bei nem Chat brauchst!? Willst alles geschriebene mitloggen ?
Gottzilla ist offline   Mit Zitat antworten
Alt 14.10.05, 20:02   #13 (permalink)
 
Registriert seit: 13.11.04
The Dude Leistung: Facit NTK
Likes: 0
Standard

technisch gesehen ist java/irc wohl ne gute loesung. allerdings hat man dann nix zu hacken und der chat ist etwas "entkoppelt" von der community, die ja hauptsaechlich durch die datenbank realisiert ist.
ne imho sehr interessante alternative mit grossartigem hack value ist das ganze mit der "ajax" methode zu machen. http://de.wikipedia.org/wiki/AJAX
The Dude ist offline   Mit Zitat antworten
Alt 15.10.05, 16:56   #14 (permalink)
404
Themenstarter
 
Benutzerbild von 404
 
Registriert seit: 28.11.04
404 Leistung: Z3
404 eine Nachricht über ICQ schicken
Likes: 0
Standard

@Elderan - klingt interessant. Nur der Safemod is leider an Traffic sollte kein Probelm sein - wir haben auf unserem Serverpart keine Trafficbegrenzung. Ab mit ner Schleife von 30 Sek oder so das müsste möglich sein....

@Gottzilla - nein natürlich nicht Der Chat an sich (also eingabe + ausgabe von Text) muss nicht unbedingt über eine DB laufen falls das auch anders möglich is - (die frage is nur wie). Die DB is für die Userprofil usw. gedacht.

@all das soll ein komplettes Community System werden, d.h. mit Userprofilen, Forum, Chat, privaten Messages usw.
D.h. wenn der User sich einmal registiert hat, kann er alles nutzen. Und es sollten auch nur registierte User den Chat nutzen können. Bei IRC wäre wieder das Probelm, wie man das Login gestaltet. Bei IRC gibts ja nur die Möglichkeit, n Channel mit PW zu versehen - nur dann müsste man das Script so schreiben, das es die Userdaten mit denen in der DB vergleicht und dann sich mit dem Passwortgeschützeten Channel verbindet.

Oder gibts da noch ne andere, effektivere oder bessere Möglichkeit?!?

Wie haben die das eigentlich dann gemacht? Haben die einen Java Server am laufen? Weil IRC scheint es nicht zu sein.

cya
__________________
Major Fault, General Error and Colonel Panic came together to celebrate timeout.


------------------------------------------------
http://www.shick.de/
------------------------------------------------
404 ist offline   Mit Zitat antworten
Alt 16.10.05, 00:53   #15 (permalink)
 
Registriert seit: 09.10.05
bugbuster Leistung: Facit NTK
bugbuster eine Nachricht über ICQ schicken
Likes: 0
Standard

hi,
vorweg würde ich erstmal sagen das euer provider evtl ärger machen könnte. viele verbieten serverlastige anwendungen wie zB chats bei kleineren paketangeboten.

in java kann man das realisieren jedoch nicht auf der client seite sondern auf der serverseite(server appletts). hierzu wäre dann soweit mir bekannt ein eigener root server erforderlich oder application server. das würde aber sicherlich euer budget sprengen. ich wollte es nur mal als alternative erwähnen

mfg
bugbuster
bugbuster ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Sicherheit eines JAVA-Chats mit Datenbank
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sicherheit für Access Datenbank Jahn (In)security allgemein 8 23.08.09 07:55
Java: erzeugen eines index Metathron Code Kitchen 0 04.04.05 17:12
sicherheit eines proxys eQuin Internet Allgemein 8 28.09.04 02:18
Sicherheit eines WLANs auf welchen Ebenen? scratchy Network · LAN, WAN, Firewalls 3 23.06.04 14:58


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61