Avatar billede kristian.dk Nybegynder
23. november 2002 - 20:48 Der er 15 kommentarer

Hvordan laver man et login i en Java applet?

Jeg skal have lavet et login til en java applet.
Når en bruger har skrevet sit brugernavn og kodeord i appletten, skal der sendes besked i en MySQL database, om det indtastede er sandt eller falsk. Hvordan laves dette. Jeg har ikke den store forstand på java (endnu), men øver mig.
Avatar billede disky Nybegynder
23. november 2002 - 21:13 #1
Man laver det slet ikke fra en Applet.

For hvis du skal snakke direkte med en database, skal username/password stå i din applet, og så kan folk selv slå op i din database og derved se gyldige username/passwords.

Lav det hellere serverside.
Avatar billede gybel Nybegynder
23. november 2002 - 23:32 #2
Disky:
Hvorfor ikke applet, det benytter mange banker!!
Man kan bare hente db stien + password for en xml fil på serveren så er det mindst lige så sikkert.
Hvis det ikke var sikkert så ville appletten ikke være udbredt.
Avatar billede kube Nybegynder
24. november 2002 - 03:25 #3
er der ikke en lille forskel idet bankerne anvender krypterede sikkerhedsfiler
Avatar billede kube Nybegynder
24. november 2002 - 03:25 #4
+brugernavn+password
Avatar billede disky Nybegynder
24. november 2002 - 09:20 #5
gybel:
Hvad forskel skulle det gøre ?

Hvis det er applet'en der skal connecte til databasen, skal den kende username/password til databasen og så kan det fanges undervejs.

Det man skal gøre er at applet'en connecter via et program der kører på serveren, og det er så dette program der kender username/password.

Hvis applet'en gør det direkte, er det ligegyldigt om det ligger i en XML fil eller ej.
Avatar billede gybel Nybegynder
24. november 2002 - 12:01 #6
Disky:

Man vil selvfølgelig ikke oprette forbindelsen mellem appletten og serveren via en alm. socket, med mindre man benytter kryptering ellers så ville SSLSocket jo være en mulighed, ligesom man heller ikke bruger en serversiden til login uden den bruger SSL.

En anden fordel rent sikkerhedsmæssigt er jo også der er ingen der kender den applikations protokol man selv har defineret.

Selvfølgelig er det ikke lige meget om det ligger i appletten eller i en xml fil.

kube:

Det er ligger ikke det store i at oprette nøgler i java, der ligger et keytool i 1.4.0 og opefter har du under det skal du hente JSSE.
Avatar billede gybel Nybegynder
24. november 2002 - 12:04 #7
Men der til skal dog siges at det er lettere at lave det i en serverside od man blot skal rette lidt i en xml fil for at få den til at benytte ssl.
Så det kommer meget anpå hvad og hvor sikkert det skal være, samt krav til klienterne.
Avatar billede disky Nybegynder
24. november 2002 - 12:10 #8
gybel:
Har du nogensinde hørt om dekompiling ?

Selv efter obfuscering, er det ikke umuligt bare lidt sværere.

jeg tvivler stærkt på nogle banke ville løbe denne risiko.
Avatar billede gybel Nybegynder
24. november 2002 - 13:03 #9
Disky:

Der vil stadig ikke ligge noget i appletten ikke andet end en henvisning til et xml dokument.
Fedt at decompile det vil gi meget.
Banker... Roskildebank, mange bank anvender applets til login.
Der er ingen risiko.

http://www.roskildebank.dk/roskildebank/roskildebank.nsf/html/netbankframe.html
Avatar billede disky Nybegynder
24. november 2002 - 13:13 #10
hvis username/password til databasen ligger i en XML fil, og det er appleten der skal connecte til databasen.

Så skal appleten jo læse i filen, og derved ankommer data til appleten, hvor den kan fanges efter en rekompiling.

Der er kun sikkert hvis selve login foregår på serveren.

Hvis applet'en skal gøre det er det usikkert.

Men du må da gerne forsøge at bevise en XML fil skulle gøre nogen forskel, forudsat der IKKE er en server side application der reelt laver connection til basen.
Avatar billede arne_v Ekspert
24. november 2002 - 13:42 #11
disky>

Jeg er helt enig med dig i, at det giver mest mening
at lave login server-side.

Men det er faktisk muligt at sætte en databse op, så
et bestemt database login username/password kun har
adgang til ganske få ting, som f.eks. at validere
en applikations-bruger.

Jeg ved ikke om MySQL (som spørgsmålet gik på) kan den slags,
men diverse banker bruger næppe MySQL.
Avatar billede disky Nybegynder
24. november 2002 - 13:49 #12
arne:
Det ved jeg udemærket godt.

Men det er imod enhver god kotume i sikkerhed, at tillade database adgang udefra, også selv om det kun er til select's.

Og det er ligegyldigt om vi snakker Sybase/Oracle/Mysql eller access
Avatar billede arne_v Ekspert
24. november 2002 - 13:55 #13
Hvis man tillader select adgang til tabellen, så har man
et gigantisk sikkerheds-hul.

Man skal kun tillade at køre en stored procedure
som checker applikations brugernavn/password og
det database login som bruges til det skal ikke have
adgang til at lave noget som helst inklusive select
på tabellen.

Og jeg ved ikke om det understøttes af alle databaser.
Avatar billede disky Nybegynder
24. november 2002 - 14:05 #14
Korrekt, men igen at tillade adgang til database udefra er en meget dum ide.

Bortset fra det understøtter MySQL ikke stored procedures ordentligt.
Avatar billede arne_v Ekspert
24. november 2002 - 14:50 #15
Men der er masser af andre gode argumenter imod
applet-DB.

client-LAN-server er måske ikke så slemt, men
client-LAN-firewall-internet-firewall-LAN-server betyder
lige at man skal igennem 2 firewalls. Normalt er det ikke noget
problem at komme igennem med HTTP på port 80. Men det vil være
et stort problem at komme igennem på den port databasen
bruger.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester