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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Synes godt om
Ny brugerNybegynder
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.