Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
| Autor | Správa |
|---|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
Na webe mam prihlasenie - ak sa clovek prihlasi, tak sa naplni Kód: $_SESSION['uzivatel'] hodnotou jeho nicku, t.j. ked sa prihlasi janko, tak Kód: $_SESSION['uzivatel'] = 'janko' Na webe potom kontrolujem danu session $_SESSION['uzivatel'] a ked je naplnena, tak clovek moze napr. napisat prispevok, poslat postu. Ta session je platna pokial sa nezavrie prehliadac, aspon myslim / alebo pokial sa neodhlasi clovek, alebo neuplynie cas X sekund, odkedy nebol aktivny. Moja otazka: Viem ja na strane servera zrusit danu session pre konkretneho cloveka ? napriklad chcem, aby nick Peter nemohol uz napisat prispevok, proste chcem ho odhlasit "na dialku", je to mozne ? (Peter ma na svojom PC danu session $_SESSION['uzivatel'] nastavenu na hodnotu "Peter")
|
|
Registrovaný: 20.01.07 Prihlásený: 05.05.25 Príspevky: 401 Témy: 87 | 87 |
toto nebude fungovat ? Kód: if ($_SESSION['uzivatel'] == 'Peter') {unset($_SESSION['uzivatel']);} Teda len na PC, kde je prihlaseny Peter sa ta session zrusi.
|
|
Registrovaný: 20.01.07 Prihlásený: 05.05.25 Príspevky: 401 Témy: 87 | 87 |
samozrejme tu hodnotu "Peter" si vlozis do nejakej premennej a budes si ju nacitavat v nejakom formulari, kde to meno napises a . odosles a vykona sa ti potom ten skript Kód: . . $meno = %_POST['meno']; if ($_SESSION['uzivatel'] == '<?= $meno ?>') {unset($_SESSION['uzivatel']);} . .
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Session je uložená na strane servera, nie na strane klienta (aspoň by mala byť). Na strane klienta môže byť tak cookie so session ID. Ty ako admin, keď sa prihlásiš, nemáš prístup k jeho session, to by bolo brutal porušenie bezpečnosti. Ak by si spravil to, čo píše dulius, fungovalo by to len v prípade, keby taký link dotyčný človek navštívil. Keby si ten skript navštívil ty, snažilo by sa to zrušiť hodnotu premennej v tvojej session (čo by samozrejme neprešlo kvôli danej podmienke). Skús možno napísať, o čo ti vlastne ide, lebo násilné odhlasovanie userov na diaľku mi príde ako riadna volovina... Dá sa zrušiť všetky sessiony, ale pravdepodobne to nejde selektívne LEN jednému userovi podľa nejakej podmienky. Teoreticky by sa to dalo, dá sa získať všetky sessiony na serveri a potom ich parsnúť a hľadať, ale........
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.05 Príspevky: 13557 Témy: 1483 | 1483 Bydlisko: Bratislava |
Necital som to vyssie ale ak by si aktualnu session ukladal do db, tak vies predsa selektivne len jednemu userovi session zrusit predsa, aspon podla mna by to malo byt celkom jednoduche spravit, ci sa mylim?
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X1 Carbon | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA & Samsung SSD 860 1 TB | Ubuntu 24.04 LTS | Dell Wyse 3040 | Intel Atom x5-Z8350 | 2 GB DDR3 1600 MHz | 16 GB eMMC | 24" EIZO FlexScan EV2451 | Alpine Linux + XFCE4 |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
ano, ja chcem zrusit na dialku prihlasenie usera dovodom moze byt to, ze robi na webe bordel a mna napadlo ho nasilu odpojit ale ako pises - nejde to, takze budem musiet to spravit inak asi do tabulky userov dam dalsi stlpec - kde danemu nicku nahodim hodnotu a potom budem ten stlpec checkovat pri kazdej aktivite nicku a ked tam bude ta hodnota, tak mu danu aktivitu (napisanie prispevku) nedovoli spravit
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Jop, to je štandardný prístup... Ban/obmedzenie činnosti 
_________________ C#, PHP, ... |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
len som si myslel ze sa to bude nejako rychlejsie a jednoduchcie dat spravit cez to session, no blbo som myslel 
|
|
Registrovaný: 20.01.07 Prihlásený: 05.05.25 Príspevky: 401 Témy: 87 | 87 |
walther píše: Session je uložená na strane servera, nie na strane klienta (aspoň by mala byť). Na strane klienta môže byť tak cookie so session ID. Ty ako admin, keď sa prihlásiš, nemáš prístup k jeho session, to by bolo brutal porušenie bezpečnosti. Ak by si spravil to, čo píše dulius, fungovalo by to len v prípade, keby taký link dotyčný človek navštívil. Session si nepamata prehliadac ? teda ked si zavries prehliadac, Session za automaticky zrusi a nie preto ze to spravil server,ci? ten moj prikaz, co som pisal potom vlastne spravi co? nezrusi danemu cloveku session? vezmime si priklad: niekto je na webe prihlaseny. Session sa naplnila jeho nickom Kód: $_SESSION['uzivatel'] = 'Peter' - takze toto sa naplni na serveri? ja teraz na strane servera vykonam prikaz: Kód: if ($_SESSION['uzivatel'] == 'Peter') {unset($_SESSION['uzivatel']);} vysledkom bude zrusenie session na serveri a vsetci prihlaseni ludia budu zrazu odhlaseni ?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Session sa pamata dovtedy, kym sa drzi session id v cookie alebo v URL. Nemyslim, ze je stopercentne spolahnutie, kedy uz isto nebude session platna. Ano, tym tvojim kodom odhlasis uzivatela Peter.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14571 Témy: 66 | 66 Bydlisko: Žilina |
Ten kód, ktorý si dal, síce odhlási len užívateľa Peter, avšak len v prípade, ak sa Peter na danej webstránke ukáže. Keď danú stránku otvorí, skontroluje sa jeho session a keďže bude obsahovať danú hodnotu, vykoná sa príkaz. Odhlásil by teda sám seba, aj keď nevedomky... Aby to ale bolo použiteľné v praxi, potreboval by si myšlienku o dosť rozvinúť a napríklad začať porovnávať so zoznamom "nechcených"...Čiže sa dostaneš tam, kam sme sa aj dostali - k implementácii banlistu. V tom prípade je už bezpredmetné riešiť nejaké takéto session odhlasovanie, keď proste stačí človeka kompletne vykázať zo serveru, prípadne okresať právomoci... Nehovoriac o tom, že dané kontrolovanie by sa realizovalo pri každej požiadavke a to aj ľuďom, ktorí s tým nemajú nič spoločné. Myslím, že obyčajná kontrola pred prihlásením je lepšia možnosť, keďže tá sa vykoná len raz (prípadne pri každej dôležitejšej činnosti).
_________________ C#, PHP, ... |
|
|
poradim ti: chces neco ako /kick na chate  Kód: <?php session_start(); //Nastartujem session $kickname = "Jozko"; //Nastavim meno usera if($_SESSION["username"] == $kickname){ session_destroy(); //Odstranim vsetky session pre usera (totalne odhlasenie) }?>
|
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
ondrejko a aky je rozdiel medzi tym co si napisal a tym co napisal dulius ? Kód: if ($_SESSION['uzivatel'] == 'Peter') {unset($_SESSION['uzivatel']);}
|
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
nezrusi mu ten tvoj prikaz aj prihlasenia na inych weboch, na inom tabe toho isteho prehliadaca ?
|
|
|
nie, zrusi iba na tvojom mam to vyskusane 
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 | 181 Bydlisko: Nitra / Bra... |
baumax píše: ondrejko a aky je rozdiel medzi tym co si napisal a tym co napisal dulius ? taky, ze ondrejko0102 dal meno pouzivatela do zvlast premennej 
_________________ Sorry za prelkepy |
|
|
taky, ze ked nastavi pre neho napr. 10 session, zmaze vsetky 
|
|
Registrovaný: 19.03.07 Prihlásený: 22.04.26 Príspevky: 7084 Témy: 86 | 86 Bydlisko: BA |
Predstav si ze mas Kód: session_start(); $_SESSION['name'] = 'dick'; $_SESSION['nick'] = 'pedro';
tak Kód: unset($_SESSION['nick']);
ti odstrani obsah $_SESSION['nick'] zatialco $_SESSION['name'] ostava nadalej pristupne. Kód: session_destroy(); ti zmaze obsah oboch premien a vlastne obsah celeho pola $_SESSION[].
_________________ Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA XFX RX6800XT | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 & Notebook: Mac M4 Air 512 & Mobil: Pixel 7a & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
no ja viemm, co robi session_destroy(); ja len ze ja riesim tu session, ktoru potrebujem riesit a to riesenie dal dulius session_destroy(); samozrejme spravi to iste + este viac, ale to viac ma nezaujima 
|
|
|
len preto, ze ja mam asi aj 10 session poli a tiez som to riesil cez unset, ale to bolo vela zbytocnych riadkov
|
|
Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
|