Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Le Inc
HV Guru

liitunud: 06.09.2002
|
17.04.2009 22:50:14
php, POST ja paroolid |
|
|
Küsimus (vahelduseks kiusaks HV 'lasi ka, google muidu ehk väsib ära ):
Kas on eetiline ja/või turvaline hoida paroole andmebaasis krüpteerimata? Olgugi et juurdepääs tabelile on piiratud?
Kas paroolide krüpteerimine on seotud otseselt POST ebaturvalisusega (saab nö. pealt kuulata) või seostub rohkem esimese küsimusega?
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
iceincube
HV veteran

liitunud: 18.11.2005
|
17.04.2009 23:02:08
|
|
|
Esiteks pole eetiline- sa ju saad inimeste paroole vaadata, pealegi kõik kasutavad suht samu paroole eri lehtede peal.
Samuti kui kellelgi õnnestub sellele baasile ligi pääseda- kasvõi tegelikult teenusepakkuja ju jne, on kõik kohe näha.
Parem hashi ära ikka nagu heaks tavaks ja korras.
|
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
17.04.2009 23:06:12
|
|
|
Eetika/turvalisus pigem. Kui sa tahad paroolihoidlat teha kust hea infi vaadata siis muidugi võid jätta krüpteerimata
Oled sa valmis oma kasutajate turvalisuse panema panti ja väitma et sinu kood on veavaba nii et infot seal ei leki ja et kasutajate paroole näed ainult sina?
Tegelt juba see koht et isegi ainult sina saad suva hetkedel paroole vaadata on hoiatav tegur lehte mitte kasutamaks...
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
20.04.2009 12:49:06
|
|
|
Ok, võtsin kasutusel php omaenda crypt() funktisooni. Loodetavasti kärab?
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
v6sa
HV Guru

liitunud: 29.01.2004
|
20.04.2009 12:58:24
|
|
|
Millise algortimiga? MD5 peaks olema piisav paroolide salvestamiseks.
_________________ Otsid kohta nokitsemiseks? Pole vajalikke tööriistu varnast võtta? Kodus lapsed ei lase rahus tööd teha? Tule kiika meie hackerspace'i k-space.ee |
|
Kommentaarid: 109 loe/lisa |
Kasutajad arvavad: |
   |
:: |
4 :: |
0 :: |
91 |
|
tagasi üles |
|
 |
lehm2
Kreisi kasutaja

liitunud: 19.09.2004
|
20.04.2009 13:19:13
|
|
|
v6sa kirjutas: |
Millise algortimiga? MD5 peaks olema piisav paroolide salvestamiseks. |
md5 ja salt sisse, siis väheneb haximis võimalus kõvasti.
_________________ Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust ! |
|
Kommentaarid: 15 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
22.04.2009 08:50:48
|
|
|
Vädietavalt kasutab php oma 2 kohalist DES krüpti. Php muudab ise võtmenumbreid (peale refreshi on uus krüpt):
<?php
if (crypt($user_input, $encrypted_password) == $encrypted_password) {
echo "Password verified!";
}
?>
See ülemine funktsioon on tore küll, aga üsna tihti ei suuda enam paroole mingi X aja pärast nö. "tagasi krüpteerida". Tuleb midagi "püsivamat" kaeda.
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
22.04.2009 16:13:03
|
|
|
md5 võta kasutusele või veel suuremat turvalisust taga ajades on sha1 isegi parem valik (praegu head md5 brute force kontrollijad leiavad 6 kohalise parooli minutitega ülesse kui md5 hash on teada)
Sul ei olegi ju reaalselt vaja php koodis krüpteeritud tekstist originaali tagasi saada et kontrollida õigsust, piisab kui postitatud parooli hash klapib baasis oleva hashiga...
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Le Inc
HV Guru

liitunud: 06.09.2002
|
22.04.2009 18:02:10
|
|
|
Mhm, leidsin nihukese asja, tundub enam-vähem:
<?php
define('SOOL', 'XXXXXX');
sha1($parool.SOOL);
?>
Nagu ma aru sain, kui pahalane seda SOOL hash'i teada ei saa, on ka lahti kräkkimine raskendatud?
|
|
Kommentaarid: 56 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
54 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
22.04.2009 22:29:44
|
|
|
Jah, soola kasutmamine on kindlasti raskendav tegur. Välistab rainbowtables laadsete asjade kasutamise kui su paroolide andmebaas peaks lekkima.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
tanzanite
HV kasutaja

liitunud: 13.05.2006
|
29.04.2009 19:56:41
|
|
|
Veelgi parem: kasuta (parool, sool, kasutajanimi) kooslust hashimisel.
|
|
tagasi üles |
|
 |
prj
HV kasutaja
liitunud: 11.11.2008
|
22.05.2009 11:11:46
|
|
|
tanzanite kirjutas: |
Veelgi parem: kasuta (parool, sool, kasutajanimi) kooslust hashimisel. |
Väga õige jutt. Mida pikem asi on, seda parem ja välistab ka selle (well, 99.999....% tõenäosusega), et sul leidub kaks ühesugust parooli hashi baasis.
|
|
Kommentaarid: 32 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
30 |
|
tagasi üles |
|
 |
tanzanite
HV kasutaja

liitunud: 13.05.2006
|
22.05.2009 17:03:24
|
|
|
A bit late ... but i take it
Olen ise juhtunud sellist hashitud paroolibaasi nägema kui hashimisel ühtegi unikaalset kirjet ei kasutatud (n: kasutajanimi) ... ja korduvaid paroole oli ikka masendavalt palju.
|
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
26.05.2009 21:28:23
|
|
|
Üks lihtne küsimus foorumisse, mis on äärmiselt raske minu jaoks:
ot: |
php:
|
<?php $num_to_guess = 3663; $message = ""; $guess=$_POST["guess1"]; { $message = "<font color=blue>Tere tulemast äraarvamismängu!<br> <font size=4>Peidetud on üks arv ja sina arva see ära. </font></font>"; } { $message="$guess ei ole ju arv. Palun sisestada täisarv!"; } elseif ( $guess > $num_to_guess ) { $message = "<font color=red>$guess on liiga suur! Proovi väiksemat arvu.</font>"; } elseif ( $guess < $num_to_guess ) { $message = "<font color=red>$guess on liiga väike! Proovi suuremat arvu.</font>"; } else // must be equivalent { $message = "<font color=green>Palju õnne - $guess on õige vastus! Pirukas on minu poolt sulle. </font>"; } ?> <html> <head> <title>Listing 9.10 A PHP number guessing script</title> </head> <body> <h1> <?php ?> </h1> <form action="<?php print $PHP_SELF;?>" method="POST"> Sisesta oma pakutav arv siia: <input type="text" name="guess1"> <input type="submit" value="Ja vajuta siia!"> </form> </body> </html>
|
|
Usun, et saate aru, et tegemist on nn äraarvamismänguga, kus külastajal on võimalus ära arvata süsteemi sisestatud arvu, mis antud näite puhul on 3663. Kui kasutaja pakub liiga suure või liiga väikse arvu, siis peab tulema vastav vastus. Kui pakub täppi, siis õnnitleb.
Aga ... kui kasutaja sisestab mingid tähed vms, mis ei ole täisarvuline number (Double on veel puudu muidugi), siis teatab, et sisestatud teks ei ole number. Kuid ma ei saa seda viimast asja tööle kuidagi. Tingimus on see, et vastus tuleks samal lehel (nagu PHP_SELF käseb).
Ma nigu õpin vähe asja ja kuna juhend on väga vigane antud näite puhul ja olen ise mitu väga olulist pisikest detaili pidanud parandama (sest originaali ei töötanud üldse), siiski olen hädas.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
26.05.2009 22:27:35
|
|
|
Kindlasti saab ka muud moodi
<?php
$num_to_guess = 3663;
$message = "";
$guess=$_POST["guess1"];
if ( ! isset( $guess ) )
{
$message = "<font color=blue>Tere tulemast äraarvamismängu!<br>
<font size=4>Peidetud on üks arv ja sina arva see ära. </font></font>";
}
if ($guess/2)
//elseif (gettype($guess)=="string")
{
$kontrol=1;
}
if ( $guess > $num_to_guess && $kontrol==1 )
{
$message = "<font color=red>$guess on liiga suur! Proovi väiksemat arvu.</font>";
}
if ( $guess < $num_to_guess && $kontrol==1 )
{
$message = "<font color=red>$guess on liiga väike! Proovi suuremat arvu.</font>";
}
if ($guess == $num_to_guess && $kontrol==1 ) // must be equivalent
{
$message = "<font color=green>Palju õnne - $guess on õige vastus! Pirukas on minu poolt sulle. </font>";
}
if ($kontrol!=1){ $message="$guess ei ole ju arv. Palun sisestada täisarv!";}
?>
<html>
<head>
<title>Listing 9.10 A PHP number guessing script</title>
</head>
<body>
<h1>
<?php
print $message;
?>
</h1>
<form action="<?php print $PHP_SELF;?>" method="POST">
Sisesta oma pakutav arv siia: <input type="text" name="guess1">
<input type="submit" value="Ja vajuta siia!">
</form>
</body>
</html> |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
26.05.2009 22:47:21
|
|
|
Kõigepealt väga tänan, et arvestasid minu koodi ja tegid sellesse lihtsalt paar lihtsat parandust.
Mind huvitab, miks muutuja $guess ei ole integer, kui ma panen selle väärtuseks mingi täisarvu? Gettype($guess) näitab kogu aeg, et tüübiks on string. :?
Huvitab veel, et kas ($guess/2) toimib siis ainult arvude puhul (jagamine, nagu ma aru saan). Minul teatas ta alati mingi sõna sisestamise peale, et see on väiksem, kui 3663 - kuidas see saab võimalik olla?
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
26.05.2009 23:22:13
|
|
|
tsitaat: |
et kas ($guess/2) toimib siis ainult arvude puhul (jagamine, nagu ma aru saan). Minul teatas ta alati mingi sõna sisestamise peale, et see on väiksem, kui 3663 - kuidas see saab võimalik olla? |
Kas minu kood ei toimi? Peaks toimima, ma proovisin. Asi ei ole üldse jagamises, mingi arv/2 onalati midagi, string jagatud kahega on väär ja lihtsalt if lause pole tõene. Sama hästi võiks sa ka arv/5 olla või arv*7 suvaline matemaatiline tehe.
tsitaat: |
Mind huvitab, miks muutuja $guess ei ole integer |
tundub, et textbox saadab numbri stringina (php ei ole selles suhtes eriti pirtsakas, kui võimalik ikka töötleb) Kui anda muutujale mingi väärtus näiteks $a=5 ja siis gettype($a) teha on vastuseks integer nagu peab. Lihtsalt see funktsioon siia ei sobi.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
27.05.2009 00:01:37
|
|
|
Selge (töötab küll;)), ma ühes teises foorumis kirjutasin ka ja anti küll natuke lihtsam lahendus, kuid sinu oma on töökindel.
Ja see lihtsam lahendus on alljärgnev. Nuputage välja näiteks üks pakkumine, mille peale tuleb vale tekst.
ot: |
php:
|
<HTML> <HEAD> <TITLE>tudiludi asi</TITLE> </HEAD> <BODY> <?php $num_to_guess = 3663; $guess=$_POST["guess1"]; if (!$guess) { echo "<font color=blue>Tere tulemast äraarvamismängu!<br><font size=4>Peidetud on üks arv ja sina arva see ära. </font></font>"; } echo "No mida - kas sa ei tee tähtedel ja numbritel vahet??? :@"; } elseif ($guess>$num_to_guess) { echo "<font color=red>$guess on liiga suur! Proovi väiksemat arvu.</font>"; } elseif ($guess < $num_to_guess){ echo "<font color=red>$guess on liiga väike! Proovi suuremat arvu.</font>"; } else { echo "<font color=green>Palju õnne! Pirukas on minu poolt sulle. </font>"; } ?> <form action="<?php print $PHP_SELF;?>" method="POST"> Sisesta oma pakutav arv siia: <input type="text" name="guess1"> <input type="submit" value="Ja vajuta siia!"> </form> </BODY> </HTML>
|
|
Kood on sellesmõttes kõik õige, kuid asi on pakkumiste tegemises.
Ja mulle öeldi, et mis põhikooli harjutusega sa tegeled.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
27.05.2009 09:47:34
|
|
|
Kõik _GET ja _POST väärtused on alati stringid.
Kontrollimaks et kas tegu on täisarvuga pead sa kontrollima esmalt et kas tegu on üldse arvuga, is_numeric(), ja seejärel et kas tegu on täisarvuga, is_int().
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
27.05.2009 12:31:29
|
|
|
Minu koodi võib sisestada ka komadega arve ja töötab, selles koodis näiteks 1,5 on vale 1.5 õige, minul sellist vahetegemist ei toimu.
Seda pole muidugi vaja, kui mäng käib täisarvule aga ...
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
tanzanite
HV kasutaja

liitunud: 13.05.2006
|
27.05.2009 12:59:40
|
|
|
mikk36 kirjutas: |
Kõik _GET ja _POST väärtused on alati stringid.
Kontrollimaks et kas tegu on täisarvuga pead sa kontrollima esmalt et kas tegu on üldse arvuga, is_numeric(), ja seejärel et kas tegu on täisarvuga, is_int(). |
is_int kontrollib muutuja tüüpi mitte, et kas stringina on kujutatud täisarvu. Ehk is_int("10")===false.
|
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
27.05.2009 22:23:53
|
|
|
andrusny koodis oli väike viga, mida ma eile ei pannud tähele. Nimelt selle koodiga ei tule ette avaleht. Murdsin täna pead tükk aega ja sain vist jagu sellest asjast:
ot: |
php:
|
<?php $num_to_guess = 3663; $message = ""; $guess=$_POST["guess1"]; { $message = "<font color=blue>Tere tulemast äraarvamismängu!<br> <font size=4>Peidetud on üks arv ja sina arva see ära. </font></font>"; } else { if ($guess/2) //elseif (gettype($guess)=="string") { $kontrol=1; } if ( $guess > $num_to_guess && $kontrol==1 ) { $message = "<font color=red>$guess on liiga suur! Proovi väiksemat arvu.</font>"; } if ( $guess < $num_to_guess && $kontrol==1 ) { $message = "<font color=red>$guess on liiga väike! Proovi suuremat arvu.</font>"; } if ($guess == $num_to_guess && $kontrol==1 ) // must be equivalent { $message = "<font color=green>Palju õnne - $guess on õige vastus! Pirukas on minu poolt sulle. </font>"; } if ($kontrol!=1){ $message="$guess ei ole ju arv. Palun sisestada täisarv!"; } } ?> <html> <head> <title>Listing 9.10 A PHP number guessing script</title> </head> <body> <h1> <?php ?> </h1> <form action="<?php print $PHP_SELF;?>" method="POST"> Sisesta oma pakutav arv siia: <input type="text" name="guess1"> <input type="submit" value="Ja vajuta siia!"> </form> </body> </html>
|
|
Vista foorumist sain siis järgmise koodi:
ot: |
php:
|
<HTML> <HEAD> <TITLE>tudiludi asi</TITLE> </HEAD> <BODY> <h1> <?php $num_to_guess = ***; //peidetud  $guess=$_POST["guest"]; if (!$guess) { echo "<font color=blue>Tere tulemast äraarvamismängu!<br> <font size=4>Peidetud on üks arv ja sina arva see ära. </font></font>"; } else { while ($pikkus >= 1) { $letter = (substr($guess, - $pikkus, 1)) ; { $notnumber = "1"; } $pikkus = $pikkus-1; } if ($notnumber == "1") { echo "<font color=red>$guess ei ole ju arv. Palun sisestada täisarv!</font>"; } elseif ($guess > $num_to_guess) { echo "<font color=red>$guess on liiga suur! Proovi väiksemat arvu.</font>"; } elseif ($guess < $num_to_guess) { echo "<font color=red>$guess on liiga väike! Proovi suuremat arvu.</font>"; } elseif ($guess == $num_to_guess) { echo "<font color=green>Palju õnne - $guess on õige vastus! Pirukas on minu poolt sulle. </font>"; } } ?> </h1> <form action="<?php print $PHP_SELF;?>" method="POST"> Sisesta oma pakutav arv siia: <input type="text" name="guest"> <input type="submit" value="Ja vajuta siia!"> </form> </BODY> </HTML>
|
|
Formaat on nati teistsuguse välimusega, aga eks igaüks teeb nii, nagu omaks peab. Niipalju, kui ma saan sellest aru, siis see kontrollib tähthaaval, et ega pakutud vastuses ei oleks tähti vms sümboleid.
Ja mõlemad koodid töötavad - mis saaks olla paremat?
---> http://www.tudiludi.byethost15.com/Listing9.10test3.php
---> http://www.tudiludi.byethost15.com/Listing9.10.php <--- siin on uus number peidetud, kes tahab natuke otsida.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
|