webForumDet fria alternativet

Kryptera lösenord i ASP.NET

.NET

7 svar · 351 visningar · startad av Han-Solo

Medlem sedan jan. 2001290 inlägg
Frågan#1

Jag vill göra en MD5 summa av lösenordet HOS KLIENTEN innan de skickas över nätet. Förr i världen använde jag mig av ett javascript som räknade om mitt lösenord till en MD5 summa. Men hur gör man idag?

FormsAuthentication.HashPasswordForStoringInConfigFile(tbxPassword.Value, "md5")

Löser inte problemet. Här skickas lösenordet i klartext för att md5 summeras när det kommer fram till servern. :l

ELLER?

Medlem sedan maj 2001329 inlägg
#2

Antingen kan du ju använda dig av ditt gamla javascript igen.

eller..

Du kan använda dig av integrated windows authentication. Vilket har den stora nakdelen att användarna måste vara användare på domänen och man måste ha internet explorer.

eller..

kör med SSL

Medlem sedan jan. 2001290 inlägg
#3

OK... men när jag försöker köra mitt JAVA script så fungerar det inte... i onSubmit skriver jag

onSubmit="return encode(xxx)"

men då lägger studion till sin egna kod...

onSubmit="studionsScript();return encode(xxx)"

Får det se ut så???

Medlem sedan apr. 20012 266 inlägg
#4

Eftersom ASP.NET körs på servern (förutom de dynamiska valideringskontrollerna) är det enda sätten att kryptera datan som sänds mellan server och client är med antigen javascript eller om du sattsar på en site som verkligen behöver hög säkerhet så är SSL ett väldigt bra alternativ.

Medlem sedan jan. 2001290 inlägg
#5

rackarns... jag testade precis att "sniffa" MD5 summan från databasen och sedan logga in med Javascript inaktiverat. I lösenordsfältet klistrade jag in MD5 summan... som på ett bananskal for jag rätt in i härligheten... grrr!

Listig som jag är ;) tänkte jag att jag ändrar den maximala teckenlängden för lösenordsfältet till 20 tecken (så långa lösenord använder 'ingen' men en MD5 summa är på över 30 tecken :i ). Nu trode jag det var löst.

Nu är det bara det att när jag krypterar lösenordet med javascriptet så gör jag det på följande sätt

document.forms[number].tbxPassword.value = MD5(document.forms[number].tbxPassword.value);

Vilket resulterar i att min MD5 summa kapas efter 20 tecken iaf... grrrr x(

Jag vill så långt det är möjligt göra en säker inloggning UTAN SSL

Idéer nån...

Medlem sedan apr. 20012 266 inlägg
#6

sätta MD5 summan i ett gömt fält och hämta det därifrån.

<input type="hidden" name="tbxMd5">

och sedan

document.forms[number].tbxMd5.value = MD5(document.forms[number].tbxPassword.value);
Medlem sedan jan. 2001290 inlägg
#7

ahh... listigt. Naturligtvis.... att jag inte knäckte det själv x( jag var nära, hade tänkt dela strängen i två delar och skicka en i ett hiddenfält.... men detdär är ju betydligt enklare.

Är jag nu "helt" säker på att ingen kan fuska sig in?

Medlem sedan jan. 2001290 inlägg
#8

Man kanske ska kolla att 'HTTP_REFERER' är korrekt med. Annars kan man väl skapa ett formullär på sin egen webbserver som skickar MD5 summan i samma namn som hidden fältet...

Eller det kanske inte ens fungerar?

257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)