Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Md5 ongelma

Sivun loppuun

thekoodaaja [31.01.2005 21:12:44]

#

Olen nytten tässä koko illan ajatellut miksi tämä pätkä ei toimi:

<?php
$sal = md5( "$_POST['sal']" )
if( md5( "zz67adbeg" ) === $sal ) {
header("Location: kirjoita.php");
} else {
header("Location: index.html");}
?>

Osaisiko kukaan auttaa kun olen vähän huono php:eessä...

Draiz [31.01.2005 21:15:14]

#

<?php
$sal = md5($_POST['sal']);
if($sal == md5("zz67adbeg")) {
header("Location: kirjoita.php");
} else {
header("Location: index.html");}
?>

thekoodaaja [31.01.2005 21:19:49]

#

kiitoksia.

ajv [31.01.2005 21:39:05]

#

Olet kyllä ymmärtänyt tuon hashauksen tarkoituksen hieman väärin. Sen tarkoitus on se, että salasana ei lue missään selvällä kielellä. Nyt jos joku pääsee kurkkimaan tuota php-koodia, niin hän näkee siitä suoraan tuon salasanan.

Heikki [31.01.2005 21:52:41]

#

Eli näinhän se menisi turvallisemmin:

<?php
$hash=file("hashi.dat");
//oletetaan että tiedoston ensimmäisellä rivillä on salasanan md5-hashi

$sal=md5($_POST['sal']);
if ($sal == $hash[0]) {
	header("Location: kirjoita.php");
} else {
	header("Location: index.html");
}
?>

Ja sitten tuon passutiedoston voi vielä suojata vaikka htaccessilla, jolloin tietoturva on melko hyvällä mallilla.

renni [01.02.2005 00:58:40]

#

Passutiedosto kannattaa laittaa jonnekin ihan muualle kuin webbipalvelimen käyttämään hakemistoon, ei tarvi sit .htaccessia käyttää ja on vähän paremmin suojassa.

Tomi [01.02.2005 08:35:43]

#

Kaikkein parhaassa suojassa salasana on luultavasti kryptattuna tietokannassa. Voi käyttää vaikka AES_ENCRYPT() tai SHA() toimintoja. Silloin se on kryptattu ja se itse tietokanta on suojattu salasanalla.

thekoodaaja [01.02.2005 08:53:55]

#

Miten saisi tän

header("Location: kirjoita.php")

turvallisemmaksi? Niin, että siihen ei pääse käsiksi ellei ole kirjautunut. Se varmaan onnistuisi jollain cookiisella, mutta mulla tuli oikosulku ja mä en tajua sitä.

tsuriga [01.02.2005 10:27:57]

#

renni kirjoitti:

Passutiedosto kannattaa laittaa jonnekin ihan muualle kuin webbipalvelimen käyttämään hakemistoon, ei tarvi sit .htaccessia käyttää ja on vähän paremmin suojassa.

Tietysti sitten jos ei hostaa omaa sivua niin se voikin olla astetta hankalampaa.

thekoodaaja: Itse muuttaisin tuon turvallisemmaksi sessioilla:
1.) Teet kirjautumissivun, jossa asetat tiedon käyttäjän kirjautumisesta sessioon.
2.) Tarkistat kirjoita.php:ssä onko kyseinen sessio asetettu

Muista aina session_start(); kaikkien sivujen alkuun, joissa käytät sessioita.

Näistä löytyy:
https://www.php.net/session/
http://mureakuha.com/artikkelit/14
http://shiflett.org/php-security.pdf

Heikki [01.02.2005 12:42:24]

#

Löytyy sessioista tietoa putkastakin:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj7

tsuriga [01.02.2005 16:30:12]

#

Tuo Putkan sessiotieto ei riitä tuon suojauksen tekemiseen. Alkeet tietysti löytyy. Siinä opetettu unset($_SESSION['bar']); ei vielä ainakaan itsellä riittänyt uloskirjautumiseen, piti komennella session_destroy();

ajv [01.02.2005 17:53:31]

#

tsuriga kirjoitti:

renni kirjoitti:

Passutiedosto kannattaa laittaa jonnekin ihan muualle kuin webbipalvelimen käyttämään hakemistoon, ei tarvi sit .htaccessia käyttää ja on vähän paremmin suojassa.

Tietysti sitten jos ei hostaa omaa sivua niin se voikin olla astetta hankalampaa.

Kyllä minulla ainakin on serverin kotihakemisto != webbipalvelimen käyttämä hakemisto kaikkialla. Niin paitsi tietenkin poislukien mbnet, mutta siellä nyt ei ole edes tietokantaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta