Hozzászólások
Hello!
Köszönöm a válaszokat. Ugyan volt egy kis feszültség, de remélem, hogy ez nem olyan nagy baj. :) Azóta már több helyen is utánanéztem/megkérdeztem. Már tudom, hogy mivel fogom megoldani. Valamiféle session() lesz esetleg kis cookie-val megtámogatva.
Kösz, bye: nightw
- A hozzászóláshoz be kell jelentkezni
[quote:e5a30871d0="nightw"]Hello!
Köszönöm a válaszokat. Ugyan volt egy kis feszültség, de remélem, hogy ez nem olyan nagy baj. :) Azóta már több helyen is utánanéztem/megkérdeztem. Már tudom, hogy mivel fogom megoldani. Valamiféle session() lesz esetleg kis cookie-val megtámogatva.
Kösz, bye: nightw
Nem volt feszkó, vita volt. :) No elmondhatnád hogy, mit találtál ki, persze csak ha publikus.
- A hozzászóláshoz be kell jelentkezni
Hello!
Egyszerű és rövid kérdés, remélem nem okoz flamewart. :D
Mit használjak PHP azonosításhoz?
1. header('WWW-Authenticate...'); + $_PHP_AUTH_USER és társai?
2. session()?
3. $_COOKIE?
4. Egyéb ötlet
Csak kíváncsi vagyok, hogy melyiket javasoljátok. Igazából a lényeg az lenne, hogy egy nagyobb és összetettebb oldal esetén(több különálló file, akár 1 órát tartó böngészés; pl: fórum, webshop, stb.) is csak egyszer kelljen azonosítani a user-t, de ezt jegyezze meg a site, viszont emellett biztonságos is legyen.
Köszi, bye: nightw
- A hozzászóláshoz be kell jelentkezni
session + cookie (a $_SESSION eleve a SESSION nevű sütibe kerül).
a http auth (basic realm...) meg ocsmány. És insecure...
- A hozzászóláshoz be kell jelentkezni
session szerintem is.
- A hozzászóláshoz be kell jelentkezni
IMHO pedig saját session kezelő class cookieval és mysql-el. A cookieban szigoruan csak a session_id tarolando, ami kelloen egyedire generált/hash-elt és ilyesmi.
A normál session is cookie-t tesz le (munkamenet kuki), viszont ez a /tmp vagy hasonlóban tárolódik és megfelelő okosítás esetén ez nem túl biztonságos.
Az első esetben akkor szerezhető normálisan jogosultság, ha sikeres az authentikáció és sikeresen lekerült a cookie a klienshez. A sessionnek persze kell adni egy timeoutot, ami a cookie ellenőrzés előtt lefut (minden X időnél régebbi session rekordot gyalulni), így ha ki is találják a session_id-t, csak akkor tud belépni ha épp aktív a másik user. Ezt viszont egyedi IP-t ellenőrzéssel meg lehet oldani (egy user csak egyszer és más IP-ről ne jöjjön). Ennyire összetett ellenőrzést a sima session nem csinál.
A webshopot pedig tessék HTTPS-re pakolni, legalábbis az érdemi részt (megrendeles.webshopom.tld).
- A hozzászóláshoz be kell jelentkezni
Kerdesedbol itelve, szamodra abszolut megfelelo a PHP -s authentikacio. A felhasznlok nevei, jelszavai adatbazisban tarolandok. A jelszo ajanlatos titkositva tarolni. Mysql eseten figyelni kell a verzioszamra mert maskepp kezelik a titkositott jelszavakat. (PASSWORD(), OLD_PASSWORD())
Az eljaras egyetlen hatranya, hogy nemtudsz a bejelentkezo abalak design -jen valtoztatni.
Az egeszet berakod egy auth.inc fajlba es elmented a webroot kvt -on kivulre. Es minden oldalon ahol szukseges require_once('../noweb/auth.inc') -szal beilleszted.
insecure jo szo he-he-he ...
- A hozzászóláshoz be kell jelentkezni
http://dev.mysql.com/doc/mysql/en/encryption-functions.html
The PASSWORD() function is used by the authentication system in MySQL Server, you should not use it in your own applications. For that purpose, use MD5() or SHA1() instead. Also see RFC 2195 for more information about handling passwords and authentication securely in your application.
- A hozzászóláshoz be kell jelentkezni
[quote:16cca5f20d="andrej_"]csak akkor tud belépni ha épp aktív a másik user. Ezt viszont egyedi IP-t ellenőrzéssel meg lehet oldani (egy user csak egyszer és más IP-ről ne jöjjön). Ennyire összetett ellenőrzést a sima session nem csinál.
Meg szerencse!
Ezzel az a baj, hogy egy session alatt is megvaltozhat egy user ip cime. Illetve, egy adott pillanatban kulonbozo usereknek is lehet ugyan az az ip cimuk.
Max a bongeszo user-agent stringjet lehet felhasznalni ilyen ellenorzesre.
- A hozzászóláshoz be kell jelentkezni
[quote:d9b4e0c355="bongyi"][quote:d9b4e0c355="andrej_"]csak akkor tud belépni ha épp aktív a másik user. Ezt viszont egyedi IP-t ellenőrzéssel meg lehet oldani (egy user csak egyszer és más IP-ről ne jöjjön). Ennyire összetett ellenőrzést a sima session nem csinál.
Meg szerencse!
Ezzel az a baj, hogy egy session alatt is megvaltozhat egy user ip cime. Illetve, egy adott pillanatban kulonbozo usereknek is lehet ugyan az az ip cimuk.
Max a bongeszo user-agent stringjet lehet felhasznalni ilyen ellenorzesre.
Egy user egy ip-rol. Egy ip-rol johet tobb juzer, a nyilvanvalo netkavezos es hasonlo okok miatt. Az IP-je lehetőleg ne változzon 30 percenként, ha mégis, akkor pedig loginoljon újra.
- A hozzászóláshoz be kell jelentkezni
Az altalad felvazolt eljarassal nem csak a loginja veszik el , ha megvaltozik az IP cime, hanem minden egyebb sessionben tarolt adat , pl webshop eseten a kosar tartalma. Ilyenkor kezdje elorol?
- A hozzászóláshoz be kell jelentkezni
[quote:f925a8ed26="bongyi"]Az altalad felvazolt eljarassal nem csak a loginja veszik el , ha megvaltozik az IP cime, hanem minden egyebb sessionben tarolt adat , pl webshop eseten a kosar tartalma. Ilyenkor kezdje elorol?
A kosarát is SQL-ben tárolom és userid-hez kapcsolódik. Amikor újra belép meglesz szépen a kosara. :) A sessiont kizárólag a user azonosításhoz használom, minden más viszonylag szeparáltan történik.
- A hozzászóláshoz be kell jelentkezni
[quote:2c70499814="andrej_"]A sessiont kizárólag a user azonosításhoz használom, minden más viszonylag szeparáltan történik.
Alapvetoen a seesion nem erre valo. Sokszor szukseg van arra, hogy az oldallekresek kozott megorizzunk valamilyen ertek. (nem lehet mindent sql -ben tarolni) pl tobb oldalas formok, stb..
Raadasul egy sor elore megirt, nepszeru programkod (PEAR es tarsai) hasznaljak a session -t.
- A hozzászóláshoz be kell jelentkezni
[quote:c15593731d="bongyi"][quote:c15593731d="andrej_"]A sessiont kizárólag a user azonosításhoz használom, minden más viszonylag szeparáltan történik.
Alapvetoen a seesion nem erre valo. Sokszor szukseg van arra, hogy az oldallekresek kozott megorizzunk valamilyen ertek. (nem lehet mindent sql -ben tarolni) pl tobb oldalas formok, stb..
Raadasul egy sor elore megirt, nepszeru programkod (PEAR es tarsai) hasznaljak a session -t.
A $_SESSION, én viszont a saját session-omről beszélek. Általában egyedi fejlesztéseket csinálok, ahol szabadkezem van. Azt hiszem erősen elbeszélünk egymás mellett. :) A session akkor mégis mire való szerinted? A többoldalas formra sem jó megoldás a $_SESSION, mert kilóméteres http-header-ekkel operálni naccerű.
- A hozzászóláshoz be kell jelentkezni
Bocsi, nem akartalak felbosszantani, csak probalom megvilagitani, hogy miert nem szerencses belevenni az ellenorzesbe az IP -cimet.
Azt gondolom, hogy az eredeti kerdezo is , es masok is hasznat lathatjak az ilyen eszmefuttatasoknak.
Az utso hozzaszolasod - a tobbivel ellentetben - valoban nehezen ertheto szamomra.
- A hozzászóláshoz be kell jelentkezni
[quote:a683f5b43e="bongyi"]Bocsi, nem akartalak felbosszantani, csak probalom megvilagitani, hogy miert nem szerencses belevenni az ellenorzesbe az IP -cimet.
Azt gondolom, hogy az eredeti kerdezo is , es masok is hasznat lathatjak az ilyen eszmefuttatasoknak.
Az utso hozzaszolasod - a tobbivel ellentetben - valoban nehezen ertheto szamomra.
Akkor kérdezz. Asszem az első hsz-emben írtam hogy saját session kezelést javaslok cookie+sql-el. Én végig ezt hívtam sessionnek, te pedig a beépítettet. Az IP cím mellett kitartok a magam részéről, viszont ezt csak példaként említettem, hogy lehet.
Egyébtíránt idestova 2 éve PHP-zom, ilyen-olyan komolyságú fejlesztésekkel és számomra az eddigi hsz-eimben írtak is az ezek által szerzett tapasztalatokon alapulnak.
- A hozzászóláshoz be kell jelentkezni
[quote:67a31b85e2="andrej_"]
Akkor kérdezz. Asszem az első hsz-emben írtam hogy saját session kezelést javaslok cookie+sql-el. Én végig ezt hívtam sessionnek, te pedig a beépítettet. Az IP cím mellett kitartok a magam részéről, viszont ezt csak példaként említettem, hogy lehet.
Egyébtíránt idestova 2 éve PHP-zom, ilyen-olyan komolyságú fejlesztésekkel és számomra az eddigi hsz-eimben írtak is az ezek által szerzett tapasztalatokon alapulnak.
A lenyeget tekintve, mindegy hogy hol tarolodik a session. Sql -ben vagy fajlban. Kulon vitat meger, hogy mi haszna sql -ba rakni a sessiont.
IMHO abban az esetben erdemes ezzel veszodni, ha kulonbozo servereken futo alkalmazasokbol kell elerni ugyanazt a munkamenetet. Ez meglehetosen ritka eset, pl elosztott rendszerkenel lehet ilyesmire szukseg. Tobb problema is van ezzel.
Eloszor is gerneral egy csomo queryt. Feltetelezem kello figyelmet forditottal arra is, hogy megfeleloen lockold a hasznalatban levo session -t. Ellenkezo esetben frames oldalaknal problemaid lehetnek.
Szep dolog, hogy kitartasz az IP elenorzes mellett, de tamaszd ala vitathatatlan ervekkel is a velemenyed, ha mast is meg akarsz gyozni.
Nem vontam ketsegbe a szakmai tapasztalatod, tudasod. De az ember, es a php nyelv is mindig fejlodik. Nyitottnak kell lenni, mas velemenyere is.
- A hozzászóláshoz be kell jelentkezni
Ha jól belegondolsz alkalmazásspecifkus dolgokról, illetve saját meggyőződésekről vitatkozunk. Én speciel pont a $_SESSION-ről váltottam az sql-es megoldásra az utóbbi időben. A beépített session kezeléssel a viszonylag könnyű hozzáférhetőség a bajom, de elképzelhető, hogy egy filerendszeres saját session-t is írok, próbaképp.
Frame-s oldalt pedig nem használok és nem is tervezem.
Bongyi: írtam privátot itten neked. :)
- A hozzászóláshoz be kell jelentkezni
[quote:9be22b2f27="andrej_"]Az IP cím mellett kitartok a magam részéről, viszont ezt csak példaként említettem, hogy lehet.
Pedig el kellene felejteni. Sokan használnak proxyt, és ezért ez nem megbízható. Egyes szolgáltatók esetén akár több gépen is lehet proxy szerver, és a dns szerver cserélgeti a név-cím párosítást, szóval nem biztos, hogy ugyanaz marad a proxy a kapcsolat ideje alatt. Magyarul kiszúrsz a júzerrel, ha ellenőrzöd. A User-Agent ellenőrzése sem szerencsés az azonosítás során, mert a proxy megint csak átírhatja. Régebben magam is elkövettem ilyet.
- A hozzászóláshoz be kell jelentkezni