21. oktober 2002 - 09:41Der er
5 kommentarer og 3 løsninger
Kan man snyde .equals() ?
Jeg har lavet noget kode der kører på en server. Hvis en bruger ønsker at få noget data retur skal der et password med. Dette har jeg implementeret med en simpel .equals() der ser om key værdien er det samme som den password parameter der kommer med.
public String getDifferenceDecimaler(String password) { String DifferenceDecimaler ="Acces denied"; if (password.equals(key)) { data = RW.readData(); DifferenceDecimaler = data[28]; } return DifferenceDecimaler;
}
Spørgsmålet er nu om man kan give metoden et hack (parameter) der snyder den, så den tror at de er ens, og derved smider uvedkommende data retur?? Måske er spørgsmålet overflødigt, men jeg syntes snart at man har set mange eksempler på at der kan fuskes. QD::
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hvis du gør gem dit password i databasen MD5 kodet, og kod brugens indtastning med MD5 også
og lav så en
select id from bruger where username='quaid' and password=password('12345')
Så koder den selv '12345' med md5 og slår op i databasen, og returnerer kun et ID hvis brugeren findes og har indtastet korrekt password, husk at username ikke altid skal være 'quaid.
Det du skal passe på hvis brugeren skal indtaste fra en form eller lignende er følgende tegn:
Nej der er ingen database. Key værdien bliver hentet fra et simpelt xml dokument, så server administratoren selv kan ændre det når han ønsker det. QD::
Nej jeg ville heller ikke stole på det hvis det var kritisk. Men i øvrigt vil det da ikke være det store problem at oprette en lille acces database, og lægge password og bruger ned i den. Det kræver ikke stor fantasi at ændre det eksisterende som det ser ud nu. Mange tak for deltagelsen. Syntes at i bør dele. QD::
MD5 er en envejs hash metode, om den findes i access ved jeg faktisk ikke. Jeg bruger altid selv MySQL hvis jeg skal bruge en database.
Jeg mener den er med i Oracle, er dog ikke 100% sikker.
p.s. Jeg brugte fejlagtigt ordet kryptering,. MD5 er envejs når du har en MD5 kode kan du ikke finde ud af hvad den originale text var. Teoretisk kan man snyde den, men chancen er extremt lille.
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.