hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 00:55



Jelenlévő felhasználók

Jelenleg 209 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 208 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Session
HozzászólásElküldve: 2017.11.26. 14:36 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Üdv!

Ha a weboldalamon egy input text-en bekérek valamit és azt továbbítom egy php fájlnak, amiben a szöveget session-ba helyezem, majd a későbbeikben ezt bekérem azt a böngésző személy tudja manipulálni?

Konkretizálom: Ha a weboldalom létrehoztam egy login panelt, ami felhasználót és jelszót kér ami ha minden megfelelő egy session-ba berakja a fiókhoz tartozó id-t, akkor azt át tudja írni? Mert ha jelszó váltást készítenék egy másik oldalon, akkor oda már csak a session-ben lévő id-t kérném be egy-egy adatbázis módosításhoz.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Session
HozzászólásElküldve: 2017.11.27. 00:01 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
Helló, arra nem tudok választ adni, hogy tudja-e módositani, viszont ha tudná akkor lenne 1 megoldásom a gond ellen :D

minden felhasználóhoz rendelsz 1 HASH kódot (+1 mező)
bejelentkezéskor mindig generálsz 1 új hash kódot a felhasználóra(igy ezt nem fogják tudni mire kéne átirni)
  1. $ujhash = md5(time()."-".$felhasznaloidvagynevvagybarmi);

ezt az új hash-t mysqlben updateled a felhasználónak, és session-be is eszerint azonositod, és a hash szerint kéred le az ID-jét.
ha meg nem létezik a hash ami megvan neki adva sessionként, akkor meg kilépteted(törlöd a session-jét)

_________________
http://www.ebateam.eu/

Ők köszönték meg IrOn nek ezt a hozzászólást: JohanCorn (2017.11.27. 08:54)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Session
HozzászólásElküldve: 2017.11.27. 08:54 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
IrOn írta:
Helló, arra nem tudok választ adni, hogy tudja-e módositani, viszont ha tudná akkor lenne 1 megoldásom a gond ellen :D

minden felhasználóhoz rendelsz 1 HASH kódot (+1 mező)
bejelentkezéskor mindig generálsz 1 új hash kódot a felhasználóra(igy ezt nem fogják tudni mire kéne átirni)
  1. $ujhash = md5(time()."-".$felhasznaloidvagynevvagybarmi);

ezt az új hash-t mysqlben updateled a felhasználónak, és session-be is eszerint azonositod, és a hash szerint kéred le az ID-jét.
ha meg nem létezik a hash ami megvan neki adva sessionként, akkor meg kilépteted(törlöd a session-jét)


Remek! Ez lett volna így a következő kérdésem. :) Köszönöm!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Session
HozzászólásElküldve: 2017.11.29. 13:08 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Ne-ne-ne.
Ne így csináld.

Példa:

Nagy József rendelkezik egy józsi - józsi1234 belépési adat kombinációval.
Kiss István kitalálja ezt, mert baromi könnyű. Belép. Elmented az ID-ját sessionbe, így ameddig nem lett invalidálva a session, akármit csinálhat, még akkor is ha már közben Nagy József megváltoztatta a jelszavát.


Egy jó megközelítés lenne neked a JWT használata, de ha nem akarsz ennyire belemenni, akkor egy kézzel lefejlesztett access token is jó lehet.

Sikeres bejelentkezésnél PHP-n keresztül generálj egy tokent, ami tartalmazza a bejelentkezési adatokat valamint egy TTL-t. Ami ehhez szükséges, hogy el kell tárolnod PHP oldalon egy kis saltot, amivel encodeolod a login adatokat és a TTL-t. A TTL fogja megadni, hogy ezzel a generált tokennel meddig randalírozhat a bejelentkezett felhasználó, ezt úgy kezeled, ahogy szeretnéd.

A kliens (gondolom javascript) megkapja a generált tokent és lementi valahová (localStorage.setItem), s ezután minden bizalmas kérés Authorization headerjébe bele kell raknod ezt a tokent.

PHP oldalon a védett végpontokon kiszeded a request auth headerjéből a tokent, majd decode-olod és próbálsz egy authenticate-et adatbázison. Ha sikerül, akkor mehet tovább a művelet, ellenkező esetekben mehet a 401 unauthorized.

Nyilván, ezzel kérésenként egyel több tranzakció fog történni (authenticate), viszont ez elengedhetetlen a biztonságos authentikáció és authorizáció érdekében.


Ha komolyan érdekel a dolog, akkor nézz utána a JWT-nek, nagyon sok szituációt meg tud oldani egyszerűen.

Ja és hogy az original kérdésedre is válaszoljak.. Nem, a session teljesen szerver oldali, felhasználó nem tudja azt módosítani.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Session
HozzászólásElküldve: 2017.11.29. 13:26 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Silent írta:
Ne-ne-ne.
Ne így csináld.

Példa:

Nagy József rendelkezik egy józsi - józsi1234 belépési adat kombinációval.
Kiss István kitalálja ezt, mert baromi könnyű. Belép. Elmented az ID-ját sessionbe, így ameddig nem lett invalidálva a session, akármit csinálhat, még akkor is ha már közben Nagy József megváltoztatta a jelszavát.


Egy jó megközelítés lenne neked a JWT használata, de ha nem akarsz ennyire belemenni, akkor egy kézzel lefejlesztett access token is jó lehet.

Sikeres bejelentkezésnél PHP-n keresztül generálj egy tokent, ami tartalmazza a bejelentkezési adatokat valamint egy TTL-t. Ami ehhez szükséges, hogy el kell tárolnod PHP oldalon egy kis saltot, amivel encodeolod a login adatokat és a TTL-t. A TTL fogja megadni, hogy ezzel a generált tokennel meddig randalírozhat a bejelentkezett felhasználó, ezt úgy kezeled, ahogy szeretnéd.

A kliens (gondolom javascript) megkapja a generált tokent és lementi valahová (localStorage.setItem), s ezután minden bizalmas kérés Authorization headerjébe bele kell raknod ezt a tokent.

PHP oldalon a védett végpontokon kiszeded a request auth headerjéből a tokent, majd decode-olod és próbálsz egy authenticate-et adatbázison. Ha sikerül, akkor mehet tovább a művelet, ellenkező esetekben mehet a 401 unauthorized.

Nyilván, ezzel kérésenként egyel több tranzakció fog történni (authenticate), viszont ez elengedhetetlen a biztonságos authentikáció és authorizáció érdekében.


Ha komolyan érdekel a dolog, akkor nézz utána a JWT-nek, nagyon sok szituációt meg tud oldani egyszerűen.

Ja és hogy az original kérdésedre is válaszoljak.. Nem, a session teljesen szerver oldali, felhasználó nem tudja azt módosítani.


Már korábban is említetted a JWT-t, azonban ez az akkori és jelenlegi tudásomat is meghaladta. Konkrétan a google-ös keresésemen kívül tovább nem is jutottam. A Session viszont nagyon egyszerű volt. A védelemre visszatérve. Jelenleg a bejelentkezést követően generálok egy 32 karakteres kódot, amiben van 1-2 változó is keverve. Ezt az értéket feltöltöm egy SQL adatbázisba. Aztán minden módosító funkció, pld játékosnév átírás esetán (Weboldalon egy Input) a feltöltéskor beleírok egy WHERE műveletet és csak akkor fogja ugye feltölteni, ha a fent generált kód megegyezik vele. Emelett ha az illető több helyen is bejelentkezi és valahol módosítja a jelszavát is új kódot generálok, amit csak ott fog Session-ben módosítani ahol a jelszómódosítást kérte. Illetve, ha a másik eszközön viszont még be volt jelentkezve, akkor a legelső interakció után ha nem fog egyezni a kód, akkor törlöm a Session-öket és kiléptetem. Az ötletet IrOn adta.

Vagy esetlegesen erre is van valami kapu és még így is betudnak kavarni?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Session
HozzászólásElküldve: 2017.11.29. 13:38 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Magam sem tudtam volna jobban megfogalmazni.

Idézet:
"That's a pretty open ended question, but I think the most important thing that you should consider when using the session in PHP is how easy it is to hijack. The PHP session stores all of its values in the server cache, where it is retrieved based on a session id that is written to a cookie on the client. As long as that session is active, a client that connects with that session id will be granted access to that session.

There are some scary programs out there, like firesheep, that can show you just how easy it is to nab a session id and make it your own. If you are going to base any security on that session, you need to make certain that EVERYTHING you do is over SSL, and you should build in some second tier of validation to make sure your session hasn't been hijacked.

All that being said, the session is a great place to store persistent values that you will need to access over the lifecycle of the user's application experience."


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole