/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Krypteret password sendt fra php -> mySQL!~
Fra : M


Dato : 11-01-06 21:39

Hej!

Jeg har rodet lidt med flg. script:
http://hjemmesideskolen.dk/scripts/phpmysql/default.php

Det ser ud til at virke super fedt, men der er ikke tænkt på
sikkerheden i det.

Når jeg opretter en ny bruger, bliver passworded sendt i clear tekst.
Hvordan får jeg scriptet til at sende passworded krypteret, så det
også står krypteret i mySQL databasen?

På forhånd tak!

-M

 
 
Martin (11-01-2006)
Kommentar
Fra : Martin


Dato : 11-01-06 22:04

M wrote:
> Hej!
>
> Jeg har rodet lidt med flg. script:
> http://hjemmesideskolen.dk/scripts/phpmysql/default.php
>
> Det ser ud til at virke super fedt, men der er ikke tænkt på
> sikkerheden i det.
>
> Når jeg opretter en ny bruger, bliver passworded sendt i clear tekst.
> Hvordan får jeg scriptet til at sende passworded krypteret, så det
> også står krypteret i mySQL databasen?

i php.

$password = md5($_POST["passwordfelt_fra_form"]);

>
> På forhånd tak!
>
> -M

M (11-01-2006)
Kommentar
Fra : M


Dato : 11-01-06 22:34

>
>$password = md5($_POST["passwordfelt_fra_form"]);
>

Mange tak!

Sad lige og søgte lidt på MD5, men kunne ikke helt finde ud af,
hvordan jeg skal indsætte koden i flg. script som er brugeroprettelses
scriptet:

<?php
mysql_connect("localhost", "bigm", "adgangskode2005");
mysql_select_db("bigm");
$sql="SELECT brugernavn FROM users WHERE
brugernavn='$_POST[brugernavn]'";
$result=mysql_query($sql)or die(mysql_error());
$number=mysql_num_rows($result);
if($number > 0){
print "<h1> $strTitle ikke godkendt</h1>";
print "<p>Desværre, brugernavnet er optaget</p>";
}
elseif($_POST['brugernavn'] && $_POST['password']){
$sql2="INSERT INTO users (brugernavn, password)
VALUES('$_POST[brugernavn]', '$_POST[password]')";
mysql_query($sql2) or
die(mysql_error());
echo "<h1> $strTitle godkendt</h1>";
echo "<p>Brugernavn og password var ledigt og er godkendt! </p>";
}
else{
echo "<h1>Indtastningsfejl</h1>";
echo "<p>Du skal udfylde begge felterne</p>";
}
?>

</div>

<? include("menu1.inc"); ?>


-M

Michael Rasmussen (11-01-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 11-01-06 23:18

On Wed, 11 Jan 2006 22:34:27 +0100, M wrote:

> Mange tak!
>
> Sad lige og søgte lidt på MD5, men kunne ikke helt finde ud af, hvordan
> jeg skal indsætte koden i flg. script som er brugeroprettelses scriptet:
Det er jo alt sammen meget godt, men det ændrer ikke ved det faktum, at
password bliver sent i klar tekst over internettet, så jeg vil mene, at
dit ændrede scipt, har nul effekt på sikkerheden!

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Henrik Stidsen (12-01-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 12-01-06 00:58

Michael Rasmussen explained on 11-01-2006 :
> Det er jo alt sammen meget godt, men det ændrer ikke ved det faktum, at
> password bliver sent i klar tekst over internettet, så jeg vil mene, at
> dit ændrede scipt, har nul effekt på sikkerheden!

Ikke helt korrekt. Når passwordet opbevares som en MD5 hash er der
ingen der kan aflæse det - f.eks. hvis serveren bliver komprimeteret
eller en administrator får sjove ideer.

Men i forhold til klient-server kommunikationen har du ret, der er det
ligemeget.

--
Henrik Stidsen - http://henrikstidsen.dk/
This is not an automated signature. I type this in to the bottom of
every message.



Michael Rasmussen (12-01-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 12-01-06 01:36

On Thu, 12 Jan 2006 00:58:24 +0100, Henrik Stidsen wrote:

>
> Men i forhold til klient-server kommunikationen har du ret, der er det
> ligemeget.
Til dette brug kan jeg anbefale
http://pajhome.org.uk/crypt/md5/md5src.html

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Henrik Stidsen (12-01-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 12-01-06 01:38

Michael Rasmussen wrote on 12-01-2006 :
>> Men i forhold til klient-server kommunikationen har du ret, der er det
>> ligemeget.

> Til dette brug kan jeg anbefale
> http://pajhome.org.uk/crypt/md5/md5src.html

Spændende - tak for link :)

--
Henrik Stidsen - http://henrikstidsen.dk/
"I love deadlines. I like the whooshing sound they make as they fly
by."
- Douglas Adams



M (12-01-2006)
Kommentar
Fra : M


Dato : 12-01-06 08:09

> Ikke helt korrekt. Når passwordet opbevares som en MD5 hash er der ingen
> der kan aflæse det - f.eks. hvis serveren bliver komprimeteret eller en
> administrator får sjove ideer.
>
> Men i forhold til klient-server kommunikationen har du ret, der er det
> ligemeget.

Vi er vel enige i, at hvis jeg fik MD5 krypteret mit password, vil det på
intet tidspunkt blive sendt i clear text. Det er jo det, der er pointen med
det hele. Ellers vil man jo kunne sniffe passworded alt for let.

Mit problem ligger pt. i, hvordan jeg modificere det script jeg postede i
3'ede indlæs, så passworded bliver krypteret.

-M




Nygaard (12-01-2006)
Kommentar
Fra : Nygaard


Dato : 12-01-06 10:01

> Vi er vel enige i, at hvis jeg fik MD5 krypteret mit password, vil det på
> intet tidspunkt blive sendt i clear text. Det er jo det, der er pointen
med
> det hele. Ellers vil man jo kunne sniffe passworded alt for let.

Løsningen her beskytter dit "rå" password, men din side er lige så sårbar.
Nu kan man jo blot sniffe dit krypterede password, og så sende det fra en
form man har stukket sammen, og derved få adgang til din side...

/Nygaard



M (12-01-2006)
Kommentar
Fra : M


Dato : 12-01-06 11:12


>Løsningen her beskytter dit "rå" password, men din side er lige så sårbar.
>Nu kan man jo blot sniffe dit krypterede password, og så sende det fra en
>form man har stukket sammen, og derved få adgang til din side...

Så kunne man vel gøre flg.:

Almindeligvis laver man en dobbelt md5:
$pass = md5( md5($password) );
Evt. sammen med f.eks. brugenavnet:
$pass = md5( md5($password).$username );

Men jeg kan bare stadig ikke gennemskue at smide det ind i koden, så
det ender sq nok med at jeg må genskrive alt selv. Men så ved jeg
da, hvad alt gør!

-M

Nygaard (12-01-2006)
Kommentar
Fra : Nygaard


Dato : 12-01-06 11:54

> Så kunne man vel gøre flg.:
>
> Almindeligvis laver man en dobbelt md5:
> $pass = md5( md5($password) );
> Evt. sammen med f.eks. brugenavnet:
> $pass = md5( md5($password).$username );
Jeg har ikke helt hittet ud af hvordan jeg vil sikre det, men overvejer
noget i stil med det du skriver, blot at jeg vil "dobbelt-kryptere"
password, SessionID og en random værdi. Men jeg tror, at ligegyldig hvor
godt man gør det, så kan det altid snydes, da headeren kan ændres... Man kan
bare gøre det mere besværligt...

/Nygaard



M (12-01-2006)
Kommentar
Fra : M


Dato : 12-01-06 12:31

>noget i stil med det du skriver, blot at jeg vil "dobbelt-kryptere"
>password, SessionID og en random værdi. Men jeg tror, at ligegyldig hvor
>godt man gør det, så kan det altid snydes, da headeren kan ændres... Man kan
>bare gøre det mere besværligt...

Flg. bruger en random unik "challenge" værdi. Derfor vil det
kyrpterede password aldrig være det samme.
http://pajhome.org.uk/crypt/md5/auth.html

Jeg tror det kan være en fornuftig løsning. Ellers hedder det vel SSL.

-M

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste