ugrás a tartalomhoz

Rejtett sütik

sirkalmi · 2011. Jan. 24. (H), 16.04
Sziasztok!

Egy login alkalmazásnál szeretném eltárolni a felhasználó nevét illetve jelszavát, hogy ne kelljen mindig beírogatni. A felhasználó azonosítása ajax kéréssel történik ezért a böngésző nem tárolja el őket, így erről nekem kell gondoskodni.
A Dojo segítségével így végzem el a tárolást:
dojo.cookie('loginName', loginName, { expires: Number.MAX_VALUE });
dojo.cookie('loginPassword', loginPassword, { expires: Number.MAX_VALUE });

Szépen működik is, azonban biztonsági okokból ez nem elfogadható, mert minden egyes kérés esetén a HTTP fejlécekben küldözgeti ezeket a sütiket. A kérdésem az volna, hogy minden esetben minden sütit elküld a böngésző a HTTP fejlécben vagy esetleg van rá mód, hogy rejtetté tegyem őket?

Az ajax-os post-ra azért van szükség, mert a jelszóból md5 ellenörző összeget állítok elő és azt post-olom.

Köszi a válaszokat!

Mariák Kálmán
sirkalmi
 
1

A kérdésem az volna, hogy

kuka · 2011. Jan. 24. (H), 16.16
A kérdésem az volna, hogy minden esetben minden sütit elküld a böngésző a HTTP fejlécben vagy esetleg van rá mód, hogy rejtetté tegyem őket?
Nem lehet. Éppen ezért találták ki a storage objektumokat.
2

No megtanulmányozom, köszi!

sirkalmi · 2011. Jan. 24. (H), 17.57
No megtanulmányozom, köszi! Közben két megoldás jutott eszembe:
- A Dojo-nak van egy dojox.encoding.crypto osztálya amivel elvileg lehet titkosítani.
- Minden kérés előtt eltávolítom a sütit, majd azonnal visszateszem :-)
4

Ez gyönyörűen

sirkalmi · 2011. Jan. 24. (H), 18.22
Ez gyönyörűen működik:

dojo.require("dojox.encoding.crypto.SimpleAES");
var ciphertext = dojox.encoding.crypto.SimpleAES.encrypt(myMessage, myPassword);
var plaintext = dojox.encoding.crypto.SimpleAES.decrypt(ciphertext, myPassword);
Már csak az a kérdés, hogy a myPassword-öt hogy a viharba adom át a javascript-nek úgy, hogy ne lehessen lehallgatni. :-(
6

HTTPS

Poetro · 2011. Jan. 24. (H), 18.51
Használj HTTPS-t és akkor majdnem teljesen lehallgathatatlan lesz a forgalom. Bizalmas adatokat egyébként se jó HTTP kapcsolaton keresztül küldeni, lásd például a FireSheep esetét. Cookie-ban egyébként se tárolj bizalmas adatokat, arra való a session, hogy az tárolja az adatokat a szerver oldalon, és így ezek az adatok csak egyszer közlekednek a böngésző és a szerver között, utána már csak a session azonosító süti közlekedik.
7

A HTTPS drága, mert a

sirkalmi · 2011. Jan. 24. (H), 22.03
A HTTPS drága, mert a tanúsítványt csak domain-hez lehet kötni sajnos. A TLS-t állítólag lehet ip címhez is kötni de erre nincs felkészítve a szerverünk meg a rendszergazda nem is ismeri a technológiát egyelőre sajnos.
Ebben az esetben nem vagyok azzal beljebb, hogy a szerver oldali session objektumban tárolom az adatokat, hiszen az input mezők inicializálásakor bele kellene generálni a html tartalomba a jelszót. Ezt szeretném elkerülni úgy, hogy egy javascript algoritmus fejti vissza a kódolt jelszót, majd inicilaizálja az input mezőt. Illetve az eredeti elképzelés az volt, hogy a böngészőben egy olyan memória területet használjak erre a célra ami nem kerül bele a kérésekbe de sajnos ez nem megoldható mint kiderült.
3

A böngészők belső jelszó

sirkalmi · 2011. Jan. 24. (H), 18.01
A böngészők belső jelszó tárolási rendszeréhez nincs valami interfész amin keresztül javascript-el hozzá lehetne férni? Arra gondolok amikor sima post van tehát nem ajax-os, akkor ide automatikusan bekerülnek az input mezőben lévő értékek amiket legközelebb visszatölt.
5

JavaScript

Poetro · 2011. Jan. 24. (H), 18.46
Attól függ, mit értesz JavaScript alatt. Lehet írni böngésző plugint, és szinte minden böngészőben azokat JavaScript-ben írod, és igen, azok hozzáférnek ezekhez az adatokhoz. Amennyiben Te akarsz hozzáférni azon az oldalon, ahol a Te JavaScript-ed van, akkor raksz egy eseménykezelőt a form submit eseményére majd eltárolod azokat valamilyen prezisztens rétegben (localStorage, sessionStorage, cookie, Flash Local Shared Object stb.). Ezután ezekből a rétegekből természetesen újra ki tudod olvasni, és az űrlapot is újra ki tudod vele tölteni, bár erre ritkán van szükség. Például Dojo Toolkit alatt erre van a dojox.storage.
8

Nocsak! Pont erre van

sirkalmi · 2011. Jan. 24. (H), 22.07
Nocsak! Pont erre van szükségem! Mégis van olyan használható memória terület ami nem kerül bele minden egyes kérésbe. Pompás.
9

Ehh bonyi ez. Nem lehet egész

sirkalmi · 2011. Jan. 24. (H), 22.53
Ehh bonyi ez. Nem lehet egész egyszerűen valamilyen eseményt dobni amire aktiválódik az adott böngésző jelszó menedzsere?