Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Kuidas ikkagi üks korralik autentimine käib? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
kristoaun
HV kasutaja

liitunud: 01.01.2007




sõnum 08.03.2008 16:05:09 Kuidas ikkagi üks korralik autentimine käib? vasta tsitaadiga

Kuidas ikkagi üks korralik autentimine käib?

kasutaja sisestab input väljadele kasutajanime ja parooli
kui välja väärtus muutub tehakse hidden väljadele sha1 hash javascriptiga.
kui kasutaja vajutab submit, siis puhastatakse kasutajale nähtavad väljad ja alles jäävad ainult username ja passwordi sha1 räsi.
php'ga kontrollin mysql tabelist kas sqlpassword = htmlpassword ja sha1(sqluser) = htmluser.

Ja siit edasi ei oska nagu midagi tarka teha.

Variandid:
htaccessiga turvatud login areasse suunamine. Ei taha, sest see on failipõhine ja .htaccess ei pidanud eriti turvaline kah olema (fail pidi liiga kergesti kättesaadav olema).
$_SESSION['kasutajaonsisseloginud'] = TRUE ja constjah = TRUE ei taga ju seda et loginkaustas olevad failid on kättesaamatud...
Siis on veel ID-kaardiga võimalus, aga see eeldab SSL serdi olemasolu (kui just oma serverit pole). Ja ma pole eriti süvenenud kah kuidas see täpselt käib. Teoorias tean.

Kas peaks mingi kombinatsiooni tegema?
Kuidas teised teevad?

Kahtlustan et siit tuleb ilmselt pikk teemaarendus icon_biggrin.gif.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.03.2008 17:17:29 vasta tsitaadiga

kui kasutajainfot ei pea turvaliselt üle interneti kandma, siis edastad selle puhtal kujul ja teed serveris vastavad arvutused/tehted sellega, et võrrelda andmebaasis olevaga
kui on vaja turvaliselt, siis kas javascript äärmisel juhul või juba ssl
serveripoolne autentimine siis on muidugi juba eraldi teema, et kindel olla, et keegi kuidagi sisse ei saaks häkkida
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
kristoaun
HV kasutaja

liitunud: 01.01.2007




sõnum 08.03.2008 19:11:13 vasta tsitaadiga

aga mida ikkagi ette võtta. Kuidas talletada infot et kasutaja on ennast sisse loginud?
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
LWD
HV vaatleja

liitunud: 17.08.2007




sõnum 08.03.2008 20:11:08 vasta tsitaadiga

Kui kasutajanimi ja salasõna klapib, siis teed suvalise stringi.

$kood = md5($_POST['user'].microtime(true));
Peaks küllalti unikaalne olema, sest süsteemis korduvaid kasutajanimesid ei tohiks olla ja võõrastel pole ka lihtne ära arvata millisekundeid

$_COOKIE['kasutaja'] = $kood;
setcookie('kasutaja', $kood, time()+40000, '/');
session_register($kood);
$_SESSION[$kood]['userid'] = $userid;
$_SESSION[$kood]['ip'] = $kasutajaip;

Ehk salvestad kliendi arvutisse küpsise selle sama unikaalse stringiga. Igakord, kui keegi pöördub serverisse kontrollid if (isset($_SESSION[$_COOKIE['kasutaja']]) && $ip==$_SESSION[$_COOKIE['kasutaja']]['ip']). Süsteemi saab murda, kui ära arvata kood ja muuta oma IP samaks kui oli kliendil, kes logis sisse.

IPd ei saa samaks muuta ja koodi äraarvamise tõenäosus on 0
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 08.03.2008 20:20:44 Re: Kuidas ikkagi üks korralik autentimine käib? vasta tsitaadiga

kristoaun kirjutas:
kui välja väärtus muutub tehakse hidden väljadele sha1 hash javascriptiga.
php'ga kontrollin mysql tabelist kas sqlpassword = htmlpassword ja sha1(sqluser) = htmluser.

Tegelikult ei erine see eriti tavalise parooliga logimisest, kuna sellisel kujul sha1 hashi teadmine on täpselt sama hea, kui parooli teadmine...

Küpsistes ei ole üldiselt eriti hea mõte kasutada mingeid kasutajaandmeid jms. Mingi väikese lehe puhul on muidugi ükskõik.

Sessiooni nime küpsisesse toppida on ka veidike kahtlane, kuna kasutajate sessioone tuvastatakse niikuinii sessiooni ID järgi. Samuti ei anna see ju mingit lisaturvalisust (kui välja jätta võimalus sessiooni IDd ära arvata), sest kui sa saad kuidagi küpsiste info, siis niikuinii ju kõik. Pigem oleks mõttekas kontrollida nt kasutaja IP aadressi.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 08.03.2008 20:27:30 vasta tsitaadiga

parooli krüptimisel ära kasuta sha1-te ega md5, kasuta sha256 või sha512. Hea on kui lisatud saab ka salt parooli. icon_wink.gif
_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kristoaun
HV kasutaja

liitunud: 01.01.2007




sõnum 09.03.2008 09:08:52 vasta tsitaadiga

parooli peaks ikka krüptima. inimesed ju kasutavad samu sõnu igal pool. Siis vähemalt ei saa salasõna teada. Ja teiseks ei ole ka portaali omanikul mingit õigust vaadata, mis salasõna kellelgi on...

ma tegin sellise variandi, et kui sisselogimisandmed klapivad, siis mysql baasis kasutajate tabelis pannakse status = login ja algusaeg. Seega saan ma kasutajat suunata failipuus suvalistesse kohtadesse ja pärast saab kontrollida kas tal ikka on õigusi. ja kontroll käib PHPSESSID järgi...

session_register kaob vist php6's ära ja see pidi olema ebaturvaline...

nüüdon veel 2 küsimust.
Kuidas kaitsta failipuu salajast osa?
- ikkagi htaccessiga tuleks seda teha. phpclasses.com'is ei olnud normaalset koodi htaccessi ja htpasswordi muutmiseks. Peab vist ise kirjutama

Kuidas teada saada, millal kasutaja on välja loginud.
- Kas siin peaks mingi cron kontrollimise tegema?
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 09.03.2008 14:19:33 vasta tsitaadiga

kristoaun kirjutas:
parooli peaks ikka krüptima. inimesed ju kasutavad samu sõnu igal pool. Siis vähemalt ei saa salasõna teada. Ja teiseks ei ole ka portaali omanikul mingit õigust vaadata, mis salasõna kellelgi on...

Jah, seda küll. Aga kasutaja pool seda teha on mõttetu. Okei, otseselt parooli ei saa teada. Kelle eest sa seda kaitsed? Iseenda? :p Ning mida sa teed, kui kasutaja veebilehitseja ei toeta Javascripti?

kristoaun kirjutas:
ma tegin sellise variandi, et kui sisselogimisandmed klapivad, siis mysql baasis kasutajate tabelis pannakse status = login ja algusaeg. Seega saan ma kasutajat suunata failipuus suvalistesse kohtadesse ja pärast saab kontrollida kas tal ikka on õigusi. ja kontroll käib PHPSESSID järgi...

Lihtsam oleks ilmselt kirjutada mingi oma MySqli baasil sessiooni handler, millega saad kõik asjad kohe ära kontrollida.

kristoaun kirjutas:
Kuidas kaitsta failipuu salajast osa?
- ikkagi htaccessiga tuleks seda teha. phpclasses.com'is ei olnud normaalset koodi htaccessi ja htpasswordi muutmiseks. Peab vist ise kirjutama

http://elonen.iki.fi/code/misc-notes/htpasswd-php/

Samas võid sa ju failidele ligipääsu keelata & neid PHP abiga väljastada.

kristoaun kirjutas:
Kuidas teada saada, millal kasutaja on välja loginud.
- Kas siin peaks mingi cron kontrollimise tegema?

Kasutaja võid sa kadunuks tunnistada sessiooni aegumisel ja manuaalsel väljalogimisel...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 09.03.2008 15:16:50 vasta tsitaadiga

Kõige olulisem on siiski see, kui kõrget turvalisust su lehekülg tegelikult vajab. Ehk siis kui tundlikud on need andmed, mida sa kaitsed? Turvalisus on alati tradeoff kasutusmugavuse ja andmete kaitstuse vahel. Mida suuremat kaitstust soovid, seda rohkem pead ohverdama kasutusmugavust, ja vastupidi. Aga see kõik oleneb sinu konkreetsest juhtumist.

Üht võin ma aga öelda: JavaScriptiga parooli krüptimine ei muuda su lehte grammigi turvalisemaks, üksnes langetab kasutusmugavust.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kristoaun
HV kasutaja

liitunud: 01.01.2007




sõnum 09.03.2008 16:00:47 vasta tsitaadiga

kui parool on JS'ga krüptitud siis üle neti (jumal teab läbi mitme masina. ja pealtkuulaja võib olla igaüks neist) saadetakse hash mitte parool ise.

Aga ma ei saa aru, mismoodi see kasutusmugavus langeb kui ma JS'ga olen krüptinud. Okei kiirust jah nats, aga see ei ole midagi märkimisväärset, mis kulub arvutamisele/pööramisele
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 09.03.2008 16:01:18 vasta tsitaadiga

See ei takista ju mingit pidi sinu lehele sisselogimist.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
zimm
HV kasutaja
zimm

liitunud: 02.06.2002




sõnum 09.03.2008 16:29:08 vasta tsitaadiga

ma isiklikult ei ole veebilehtede kirjutamisega tegelenud, kuid kliendipoolne hashimine on imho väga korralik turvaauk.
nimelt, kui hash lekib (kas sinu andmebaasist või samade algoritmidega teistest andmebaasidest), siis saab häkker kasutada üksnes hashi edukaks sisselogimiseks (javascripti asemel paneb ise õige jada teele). teada on, et korraliku algoritmi puhul on dehashimine väga-väga pikk ja kahtlane protsess.
kui kasutad serveripoolset hashimist, muutub sinupoolne vastutus väiksemaks kui omad ise korralikult kaitstud serverit. kliendi mure on andmed turvaliselt üle interneti sinuni toimetada. sina saad turvalisust tõsta SSL kasutamisega.

aga nojah, see on minu tagasihoidlik arvamus asjast, pole üldiste tavade ja standartidega tutvunud.
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 09.03.2008 17:53:03 vasta tsitaadiga

kristoaun kirjutas:
Aga ma ei saa aru, mismoodi see kasutusmugavus langeb kui ma JS'ga olen krüptinud. Okei kiirust jah nats, aga see ei ole midagi märkimisväärset, mis kulub arvutamisele/pööramisele


Kasutusmugavus langeb allapoole igasugust arvestust nendel kasutajatel, kel JavaScript ei tööta (pole brauseril üldse või on välja lülitatud).

Kui sa tahad võrguliikluse pealtkuulamise vastu kaitsta, siis on ainus mõistlik võimalus SSL. zimm'il on täiesti õigus: serverisse parooli asemel räsi saatmine on pigem tuvaauk.
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
da3rX
HV kasutaja
da3rX

liitunud: 01.09.2004




sõnum 09.03.2008 20:02:40 vasta tsitaadiga

Serveripoolseks paroolide räsimiseks soovitan kasutada phpass'i.
Hoia kasutaja infot serveris (kasuta küpsiste asemel sessioone).
Soovitan kontrollida ka kasutaja IP aadressit ja brauserit (HTTP_USER_AGENT). Vaevalt need kasutaja sessiooni käigus muutuvad.

Vältimaks parooli vabalt üle võrgu saatmist võib kasutada HTTPS'i.
Kommentaarid: 10 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 10
tagasi üles
vaata kasutaja infot saada privaatsõnum
kristoaun
HV kasutaja

liitunud: 01.01.2007




sõnum 10.03.2008 13:44:02 vasta tsitaadiga

kui paljudel on JS keelatud? pakun et 1/10000
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
XYZ
HV Guru
XYZ

liitunud: 05.11.2001




sõnum 10.03.2008 14:17:01 vasta tsitaadiga

kristoaun kirjutas:
kui paljudel on JS keelatud? pakun et 1/10000
liiga vähe pakud
ma ei pea võimatuks, et lausa pooltel on keelatud
Kommentaarid: 81 loe/lisa Kasutajad arvavad:  :: 3 :: 12 :: 56
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 10.03.2008 14:38:48 vasta tsitaadiga

XYZ, ära nüüd nii pessimist ka pole, tegelikkuses on väga vähestel keelatud
mingid domeenireeglid annavad ju väga minimaalse osa (lisaks siis vähestele paranoilistele inimestele) kogu internetikasutajatest (ja vähestes domeenides on keelatud js)
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
nn3_
HV kasutaja
nn3_

liitunud: 13.09.2003




sõnum 10.03.2008 15:48:12 vasta tsitaadiga

XYZ kirjutas:
ma ei pea võimatuks, et lausa pooltel on keelatud

See on küll väga julgelt pakutud.

http://www.w3schools.com/browsers/browsers_stats.asp
tsitaat:

JavaScript On: 96%

See ei ole küll kõige parem statistika, sest leht on orienteeritud IT inimestele, kes aga kipuvad rohkem seadistusi näppima. Kuna vaikimisi on JavaScript kaasaegsetel brauseritel sisse lülitatud, siis pakun et mitte-IT-inimeste hulgas on lubatud protsent pigem suurem.

Eesti oludesse sobib
http://blog.klikivabrik.ee/2007/10/eestlane-armastab-xp-d-ie-d-ja.html
tsitaat:
Üsnagi ootuspärane oli ka cookie’de ja javascripti keelamine – Cookied olid lubatud 97,6% kasutajatel ning javascript 99,3 %.


---

Mis teemasse puutub, siis JavaScripti kasutamine selles konkreetses olukorras ei ole hea mõte (st ei anna midagi juurde).
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 10.03.2008 16:18:08 vasta tsitaadiga

No aga seda mõtteviisi võiks ju siis ka turvalisuse osas rakendada - palju neid ründavaid kasutajaid ikka on...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 10.03.2008 16:28:01 vasta tsitaadiga

jah Eestis on protsent suur, kuna suuremad lehed näiteks pank on põhiliselt paljutki JS peal ehitatud. Kuid selline vaidlus ei vii kuhugi. Minu arust tuleks siiski teha server-side variant icon_rolleyes.gif
_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
XYZ
HV Guru
XYZ

liitunud: 05.11.2001




sõnum 10.03.2008 16:40:29 vasta tsitaadiga

Saab ka ainult pangale JS lubada ja kõikjal mukal keelatuna hoida. Mida statistika sel puhul asjast arvab ma ei tea.
Kommentaarid: 81 loe/lisa Kasutajad arvavad:  :: 3 :: 12 :: 56
tagasi üles
vaata kasutaja infot saada privaatsõnum
d3t
HV Guru
d3t

liitunud: 14.05.2004




sõnum 17.07.2008 19:02:06 vasta tsitaadiga

XYZ, tahaks meelede tuletada et HV kasutajskond ei esinda maailmat ega eestit. On olemas grupp inimesi kes on teistest vähekene rohkem targemad, ent valdav enamus ei vaevu selle javascripti peale mõtlema ka mitte, mis tagabki selle suure kasutatavuse.
_________________
next.Insiders - koht mängijatele ja tehnikahuvilistele toredaks ajaveetmiseks.
PT: Sony XE90 & LG C1 värvi kalibreerimine
Lecktor - 3D printerid ja lisatarvikud, Voron, Prusa jne
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 72
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 17.07.2008 22:26:19 vasta tsitaadiga

Kui salasõnaga tõesti pääseb ligi salastatud riigidokumentidele, siis tuleks kasutada SSL protokolli. Vastasel juhul on tavaline andmete ülekandmine täiesti piisav. Seda enam, et Javascriptiga krüpteeritud/hashitud andmeid võrgust vahelt pätsates saab lehele sisse ka tegelikku parooli teadmata, saates lihtsalt sellesama info.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 18.07.2008 23:52:48 vasta tsitaadiga

Minu arust on SSL-i kasutamine autentimisel tänapäeval elementaarne, sest turvarisk on ikkagi suur, olenevalt, mis andmetega tegu on. Kasutaja ja serveri vaheline ühendus peaks kindlasti olema SSL-i proto kaudu. Serveris, kas kasutaja on juba sisse logitud või mitte, on asja lihtsam lahendada. Teha MySQL tabel antud kasutaja id-ga ja panna sama ka sessiooni ($_SESSION['id'] või mida iganes), ja visata hunnik kontrolllahtreid (kasutaja id, sessiooni id, ip, browser, +[mingi kindel unikaalne koodisüsteem]). Kindlasti lisada ka mingi time-out variant (a. la kindla aja pärast sessioon lõpetatakse, st kasutaja kustutatakse tabelist)[mul istub see cron-is]+küsija(kasutaja) poolne (st et kui login tabelist küsitakse seda ID-d siis kontrollib möödunud aega, kui eksisteerib tabelis).
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
tanzanite
HV kasutaja
tanzanite

liitunud: 13.05.2006




sõnum 09.08.2008 17:11:51 vasta tsitaadiga

kristoaun kirjutas:
kui parool on JS'ga krüptitud siis üle neti (jumal teab läbi mitme masina. ja pealtkuulaja võib olla igaüks neist) saadetakse hash mitte parool ise.

1. samahästi võivad need jumal-teab-mitu-masinat vahepeal JS endale sobivalt muuta => kasu ei midagi
2. https protokoll on selleks
3. kasutusmugavus kannatab - kuni selleni, et leht on täiesti kasutuskõlbmatu
4. ...
5. profit !

nene kirjutas:
Kõige olulisem on siiski see, kui kõrget turvalisust su lehekülg tegelikult vajab. Ehk siis kui tundlikud on need andmed, mida sa kaitsed? Turvalisus on alati tradeoff kasutusmugavuse ja andmete kaitstuse vahel. Mida suuremat kaitstust soovid, seda rohkem pead ohverdama kasutusmugavust, ja vastupidi.
thumbs_up.gif

tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Kuidas ikkagi üks korralik autentimine käib? mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.