Kontrola relácií, heslá aplikácií a potvrdenie prihlásenia na Facebook. Základné princípy správy relácií Aktívna relácia

  • 20.06.2020

Relácia (z latinčiny - sessio - stretnutie, anglicky - relácia) je časový úsek pokrývajúci prácu užívateľa na internete od momentu otvorenia prvého po posledný odkaz. Vypočítava sa ako časový rozdiel medzi počiatočnými a konečnými požiadavkami. Poslednú stránku si však používateľ môže prezerať v rôznom čase, a preto sa meranie času medzi dvoma požiadavkami stáva zložitejším.

Ako relácia súvisí s HTTP a COOKIES

Čo je to relácia, možno vysvetliť pomocou protokolu HTTP. Tento protokol sám o sebe neposkytuje spôsob, ako udržať stav medzi dvoma operáciami. Inými slovami, otvorením jednej stránky a následným prechodom z nej na druhú nebude HTTP schopný určiť, že obe požiadavky patria rovnakému používateľovi. A tu prichádza na pomoc špeciálna metóda sledovania – správa relácií (naše relácie).
Preto pri odpovedi na otázku, čo je to relácia, môžeme povedať, že ide o pomocný logický objekt, ktorý uľahčuje prenos údajov medzi po sebe nasledujúcimi požiadavkami HTTP od jedného používateľa.
Súbory cookie, podobne ako relácia, ukladajú informácie o používateľovi, keď prechádza rôznymi stránkami, a zlepšujú fungovanie protokolu. Ale na rozdiel od druhého, kde sú údaje uložené v dočasných súboroch na serveri, ukladajú ich do počítača používateľa vo forme malých fragmentov.

Na čo sú relácie?

Používanie relácií sa stáva nevyhnutným pri práci so stránkami, ako sú fóra, nástenky a online obchody, pretože v tomto prípade je potrebné uložiť údaje používateľa na viacerých stránkach.

Fázy relácie

Celú reláciu možno rozdeliť do troch etáp:

  • otvorenie relácie (keď používateľ začne pracovať s konkrétnou stránkou),
  • účtovanie premenných relácie (pri prechode na rôzne stránky),
  • koniec relácie.

Vzhľadom na skutočnosť, že údaje o relácii sú uložené na serveri tretej strany, je najlepšie neukladať do nich veľké množstvo informácií, ale používať súbory cookie.

V module Aktívne sedenia kedykoľvek môžete vidieť zoznam používateľov, ktorí momentálne pracujú s ústredňou, IP adresu, z ktorej používateľ pristupuje, a čas, ktorý uplynul od prijatia posledného príkazu od tohto používateľa.

V prípade potreby môžete ukončiť reláciu vybraného používateľa.

Modul "Aktívne relácie"

Zobrazenie informácií o aktuálnych pripojeniach

  • ID relácie- jedinečné číslo, ktoré identifikuje reláciu s ovládacím panelom. Štandardne sa informácie v tabuľke zobrazujú na 60 minút.
  • Používateľ- meno užívateľa aktuálne pripojeného k systému.
  • Prístup- úroveň prístupu tohto používateľa k ovládaciemu panelu (napríklad superužívateľ, správca servera, používateľ atď.).
  • IP adresa- vzdialená IP adresa, z ktorej sa vykonáva prístup.
  • Očakávanie- čas, ktorý uplynul od okamihu, keď ústredňa prijala posledný príkaz od užívateľa.
  • Aktívne požiadavky- počet aktívnych žiadostí.

Koniec relácie

Ak chcete ukončiť konkrétnu reláciu práce s ovládacím panelom, vyberte požadované riadky v zozname aktívnych relácií a kliknite na tlačidlo „Koniec“.

Aby ste predišli náhodnému vymazaniu, ovládací panel vás požiada o potvrdenie alebo zrušenie vašej akcie. Ak v potvrdzovacom okne kliknete na „OK“, vybrané relácie sa ukončia.

Ak bola relácia ukončená, používateľ sa musí znova prihlásiť, aby mohol pokračovať v práci s ovládacím panelom.

Tento formulár nie je výzva na podporu.
Nemôžeme vás identifikovať a odpovedať na vašu správu.

Pre správne zobrazenie tejto stránky potrebujete prehliadač s podporou JavaScriptu.

Relácie autorizácie používateľov

Ak chcete získať prístup, musíte nasledovať odkaz Aktívni používatelia V kapitole Administrácia - Hlavná stránka v bloku Používatelia(obr. 2); odkaz Aktívni používatelia V kapitole Administrácia - Systém - Licencie v rade Konkurenčné licencie(obr. 3) - táto možnosť je možná len v prípade, že používa systém ELMAtyp súbežných licencií ; stlačením tlačidla Aktívni používatelia V kapitole Administrácia – Používatelia(obr. 4).

Ryža. 2. Sekcia „Administrácia – Používatelia“. tlačidlo Aktívni používatelia

Ryža. 3. Sekcia "Administrácia - Systém - Licencie". Odkaz „Aktívni používatelia“

Ryža. 4. Sekcia "Administrácia - Úvodná stránka". Odkaz „Aktívni používatelia“

Používateľské meno- toto pole obsahuje celé meno užívateľa v systéme ELMA. Tlačidlo vedľa používateľského mena vám umožňuje prerušiť (odhlásiť sa pre príslušného používateľa) a odstrániť informácie o všetkých reláciách tohto používateľa zo zoznamu.

IP adresa- toto pole obsahuje IP adresu užívateľa, z ktorého bola vykonaná autorizácia v systéme... Ak sa webová farma ELMA využíva na prácu, každému z aktívnych používateľov sa zobrazí jeho skutočná IP adresa.

Tlačidlo vedľa adresy IP vám umožňuje ukončiť príslušnú reláciu a odstrániť informácie o nej zo zoznamu.

Ikona vedľa IP adresy znamená, že aktuálny používateľ je momentálne prihlásený do systému. Po uplynutí určitého času od poslednej odpovede používateľa sa aktívna relácia pozastaví. Pozastavené relácie sú označené . Časový limit, po ktorom je aktívna relácia pozastavená, je definovaná v sekcii Administrácia - Systém - Nastavenia systému - Nastavenia zabezpečenia.

Posledná odpoveď- toto pole obsahuje informácie o poslednej akcii vykonanej používateľom v systéme alebo o poslednej úspešne odoslanej požiadavke zo stránky na server (raz za minútu zo stránky otvorenej v prehliadači sa odošle webová požiadavka na server ELMA za účelom kontroly pripojenia a zberu štatistík).

Posledná akcia používateľa- toto pole obsahuje informácie o poslednej akcii vykonanej používateľom v systéme vo formáte Dátum - Čas - Odkaz na poslednú stránku navštívenú používateľom... Tento odkaz je relatívny. Ak chcete získať úplný odkaz, musíte k nemu pridať adresu servera (obr. 5).

Ryža. 5. Vytvorenie úplnej adresy odkazu na poslednú stránku navštívenú používateľom

Ak je používateľ určitý čas neaktívny, aktuálna relácia sa automaticky ukončí. Nastavenia trvania ukladania relácie sa konfigurujú v sekcii

kapitola Aktívne sedenia na stránke Nastavenia zabezpečenia zobrazuje zoznam nedávnych prípadov prístup k vášmu účtu na Facebooku.

Každá položka obsahuje dátum a čas prihlásenia, približnú polohu, z ktorej autorizácia pochádza, a typ zariadenia použitého na prihlásenie do účtu. Možnosť ukončiť reláciu sa tiež zobrazí napravo od každého záznamu.

Poznámka: Určuje umiestnenie na základe adresy IP, z ktorej sa pristupovalo k účtu. Ak chcete poznať presné podrobnosti o prihlasovacej IP adrese, jednoducho umiestnite kurzor myši na informácie o umiestnení relácie.

Čo znamená situácia, keď nepoznám vstupný bod

Ak nájdete miesto, ktoré nespoznávate, najprv skontrolujte, či táto relácia nie je spojená s mobilným zariadením. Mobilné prihlásenie často používa dynamickú IP adresu, ktorá neodráža fyzickú polohu používateľa.

Ak nepoznáte polohu a nie je spojená s prihlásením pomocou mobilného zariadenia, dôvody môžu byť nasledovné:

Heslo aplikácie Facebook

Čo je heslo aplikácie

Heslo aplikácie sú jednorazové heslá, ktoré sa používajú na vstup do programu. Používanie hesiel pre aplikácie pomôže udržať Facebook v bezpečí.

Okrem toho, ak je pri použití hesla aplikácie povolená služba potvrdenia registrácie, nebude potrebné čakať na prijatie kódu. Namiesto toho môžete preskočiť potvrdenie prihlásenia a prihlásiť sa okamžite.

Ak chcete získať heslo pre aplikáciu:

Potvrdenie prihlásenia na Facebook

Čo je funkcia overenia prihlásenia

Overenie prihlásenia je dodatočným zabezpečením vášho účtu Facebook, ktorý je spojený s Upozornenie na prihlásenie ale s dodatočným krokom bezpečnostného postupu.

Po povolení potvrdenia prihlásenia sa vás pri každom pokuse o prístup k vášmu účtu Facebook z neidentifikovaného počítača alebo mobilného zariadenia môže zobraziť výzva na zadanie prihlasovacieho kódu.

Po prihlásení budete môcť toto zariadenie pomenovať a uložiť si ho do svojho účtu. Pri prihlasovaní z niektorého z oficiálnych zariadení nie je potrebné zadávať kód.

Ak chcete povoliť funkciu potvrdenia prihlásenia:


Poznámka: Aby bolo možné povoliť potvrdenie prihlásenia, telefónne číslo musí byť uložené v údajoch účtu.

Ako zablokovať prístup na Facebook bez kódu

Ak nechcete, aby sa do vášho účtu mohol ktokoľvek prihlásiť odkiaľkoľvek, môžete to povoliť Potvrdenie registrácie.

Po povolení pomenovanej funkcie možno budete musieť pri každom pokuse o prístup k svojmu účtu z neidentifikovaného zariadenia (napríklad z počítača alebo mobilného telefónu) zadať kód na vstup do systému.

Čo sa stane, ak sa pokúsim prihlásiť z iného počítača

Pri pokuse o prihlásenie z nerozpoznaného zariadenia sa zobrazí hlásenie s výzvou na zadanie prihlasovacieho kódu.

Ak ste si nainštalovali aplikáciu Generátor kódu, otvorte aplikáciu Facebook pre Android a získajte kód.

Ak aplikácia nie je nainštalovaná, skontrolujte bezpečnostný kód v telefóne, zadajte ho a použite službu. V prípade problémov so získaním bezpečnostného kódu počkajte niekoľko minút a požiadajte o nový kód pomocou odkazu Pošlite kód znova... Ak chcete získať ďalšie informácie o riešení problémov, kliknite na odkaz Nemôžem získať kód.

Ako získať overovací kód

Ak ste zahrnuli Potvrdenie prihlásenia, dostanete SMS s prihlasovacím kódom vždy, keď ho budete potrebovať. Ak používate aplikáciu pre Android, môžete si stiahnuť program Code Generator.

Kód zadávam pri každom prihlásení

Po zadaní bezpečnostného kódu a prihlásení do systému je potrebné priradiť prezývku k počítaču alebo telefónu a uložiť ju (ak zariadenie potrebujete). Ak budete aj naďalej dostávať výzvy na zadanie kódu, keď sa prihlásite pomocou niektorého z uložených (oficiálnych) zariadení, možno budete musieť upraviť nastavenia prehliadača.

Ak použijete funkciu potvrdenia prihlásenia, systém musí uložiť údaje vášho počítača a prehliadača, aby ich bolo možné rozpoznať pri ďalšom prihlásení.

Niektoré funkcie prehliadača to neumožňujú. Ak používate funkciu súkromného prehliadania alebo je váš prehliadač nakonfigurovaný tak, aby pri zatvorení vymazal vašu históriu prehliadania.

Webový server neudržiava trvalé spojenie s klientom a každá požiadavka je spracovaná ako nová, bez akéhokoľvek spojenia s predchádzajúcimi.
To znamená, že nemôžete sledovať požiadavky od toho istého návštevníka, ani preňho ukladať premenné medzi zobrazeniami samostatných stránok. Na vyriešenie týchto dvoch problémov boli vynájdené relácie.
V skutočnosti sú relácie v skratke mechanizmus, ktorý vám umožňuje jednoznačne identifikovať prehliadač a vytvoriť súbor pre tento prehliadač na serveri, v ktorom sú uložené premenné relácie.

Nebudem podrobne popisovať potrebu takéhoto mechanizmu. Sú to také učebnicové prípady ako nákupný košík v e-shope, autorizácia, ale aj nie úplne triviálne problémy, akými sú napríklad ochrana interaktívnych častí stránky pred spamom.

V zásade je celkom jednoduché vytvoriť si vlastnú analógiu relácií, ktorá nie je taká funkčná ako vstavané PHP, ale v podstate podobná. O cookies a databáze.
Pri vyžiadaní skriptu sa pozrieme, či neprišiel súbor cookie s konkrétnym názvom. Ak neexistuje žiadny súbor cookie, nastavte ho a zapíšte do databázy nový riadok s používateľskými údajmi. Ak je tam cookie, tak čítame z databázy. Ešte jednou požiadavkou vymažeme staré záznamy z databázy a teraz máme pripravený mechanizmus relácie. Nie je to vôbec ťažké. Existujú však určité nuansy, kvôli ktorým je vhodnejšie použiť vstavaný mechanizmus relácie.

Ak je povolená iba prvá, potom na začiatku relácie (pri každom hovore session_start ()) je pre klienta nainštalovaný súbor cookie. Prehliadač správne vracia tento súbor cookie pri každej ďalšej požiadavke a PHP má identifikátor relácie. Problémy začínajú, ak prehliadač nevracia súbory cookie. V tomto prípade PHP vždy spustí novú reláciu bez prijatia cookies s identifikátorom a mechanizmus nebude fungovať.

Ak je povolený iba druhý, súbor cookie sa nenastaví. A čo sa stane, je to, kvôli čomu sa v podstate v skutočnosti oplatí použiť vstavaný mechanizmus relácie. Potom, čo skript vykoná svoju prácu a stránka je úplne vytvorená, PHP si to všetko pozrie a pripojí ID relácie ku každému odkazu a ku každému formuláru. Vyzerá to asi takto:
Index mení sa v
Index
a do formulárov sa pridá skryté pole

A prehliadač, keď kliknete na akýkoľvek odkaz, alebo keď kliknete na tlačidlo vo formulári, odošle v požiadavke premennú, ktorú potrebujeme - identifikátor relácie!
Zo zrejmých dôvodov sa ID pridáva iba k relatívnym odkazom.

Teoreticky môžete v našich domácich reláciách o súboroch cookie a databáze manuálne priradiť prenos ID všetkým odkazom - a potom budú naše vlastné relácie fungovať nezávisle od súborov cookie. Ale vidíte – je príjemnejšie, keď túto prácu robí niekto iný? ;-)

Obe možnosti sú v najnovších verziách PHP štandardne povolené. Ako to zvláda PHP? Cook je vždy vystavený. A odkazy sa automaticky dopĺňajú iba vtedy, ak PHP nenájde súbor cookie s ID relácie. Keď používateľ navštívi stránku prvýkrát počas tejto relácie, dostane súbor cookie a pridajú sa odkazy. Pri ďalšej požiadavke, ak sú súbory cookie podporované, PHP súbor cookie uvidí a prestane dopĺňať odkazy. Ak cookies nefungujú, PHP pokračuje v správnom pridávaní id do odkazov a relácia sa nestratí.
Používatelia, ktorí používajú súbory cookie, uvidia dlhý odkaz s ID iba raz.

Fuh. Po dokončení prenosu identifikátora.
Teraz zostáva naviazať súbor s údajmi na strane servera.
PHP to urobí za nás. Stačí len písať
session_start ();
$ _SESSION ["test"] = "Ahoj svet!" ;

A PHP zapíše testovaciu premennú do súboru spojeného s touto reláciou.
Je tu veľmi dôležitý bod.
Pole $ _SESSION- špeciálny.
V ňom sú v skutočnosti premenné, ktoré chceme sprístupniť v rôznych skriptoch.
Ak chcete umiestniť premennú do relácie, stačí ju priradiť k prvku poľa $ _SESSION.
Ak chcete získať jeho hodnotu, stačí sa odvolať na rovnaký prvok. Príklad bude uvedený nižšie.

Garbage collection – PHP sa podieľa aj na odstraňovaní zastaraných súborov. Rovnako ako kódovanie dát a kopa ďalších potrebných vecí. Vďaka tejto starostlivosti je práca s reláciami veľmi jednoduchá.
Tu sme v skutočnosti a prichádzame k príkladu práce relácií.
Príklad je veľmi malý:
session_start ();

ozvena "Aktualizovali ste túto stránku"... $ _SESSION ["počítadlo"] ++. "raz.";
ozvena"
aktualizovať ";
?>

Skontrolujeme, či máme v relácii premennú počítadla, ak nie, potom ju vytvoríme s hodnotou 0 a potom vypíšeme jej hodnotu a zvýšime ju o jednu. Zvýšená hodnota sa zapíše do relácie a pri ďalšom volaní skriptu bude mať premenná hodnotu 1 atď.
Všetko je veľmi jednoduché.

Aby ste mali prístup k premenným relácie na ktorejkoľvek stránke lokality, musíte napísať LEN JEDEN (!) riadok na úplný začiatok KAŽDÉHO súboru, v ktorom potrebujeme relácie:
session_start ();
A potom sa pozrite na prvky poľa $ _SESSION. Napríklad kontrola autorizácie by vyzerala takto:
session_start ();
ak ($ ​​_SESSION ["autorizované"]<> 1 ) {
hlavička ("Umiestnenie: /auth.php");
východ;
}

Odstránenie premenných z relácie.
Ak máte register_globals = off, tak stačí napísať
deaktivované ($ _ SESSION ["var"]);
Ak nie, tak v blízkosti Potrebujem si s ňou písať
session_unregister ("var");

Najčastejšie chyby, ktoré PHP dáva pri pokuse o prácu s reláciami, sú:
Dvaja z nich,
Upozornenie: Nie je možné odoslať súbor cookie relácie - hlavičky už boli odoslané
Upozornenie: Nie je možné odoslať obmedzovač vyrovnávacej pamäte relácie – hlavičky už boli odoslané

spôsobené rovnakým dôvodom, riešenie je popísané v tejto skutočnosti
po tretie,
Upozornenie: otvorenie (/ tmp \ sess_SID, O_RDWR) zlyhalo: Žiadny takýto súbor alebo adresár (2) v ceste full_script_path na čísle riadku(predtým vyzerala Upozornenie: Nepodarilo sa zapísať údaje relácie (súbory). Skontrolujte, či je aktuálne nastavenie session.save_path správne (/ tmp)),
ak je preložený z angličtiny, podrobne vysvetľuje problém: cesta uvedená v php.ini k adresáru, kde sú zapísané súbory relácie, nie je dostupná. Túto chybu je najjednoduchšie opraviť. Stačí napísať adresár, ktorý existuje a je zapisovateľný, napr.
session.save_path = c: \ windows \ temp
A potom nezabudnite reštartovať Apache.

Ako sa ukazuje, ľudská inteligencia nemá hraníc, a preto musím vysvetliť:
tretie chybové hlásenie (adresár sa nedá nájsť) bude NEDOSTUPNÉ povedie k prvým dvom, pretože chybové hlásenie sa vypíše do prehliadača a po ňom nemôžete použiť hlavičky. Preto sa neponáhľajte hľadať predčasný záver, ale najprv napíšte správnu cestu!

Ďalším najčastejším problémom pri práci s reláciami je ťažké dedičstvo register_globals. NEDÁVAJTE premenným skriptu rovnaké názvy ako indexy poľa $ _SESSION!
S register_globals = on sa hodnoty navzájom prepíšu a budete zmätení.
A ak register_globals = off, objaví sa ďalšia chyba: "Váš skript sa možno spolieha na vedľajší efekt relácie, ktorý existoval až do PHP 4.2.3." ... Aby ste sa toho zbavili, mali by ste pred použitím vždy inicializovať premenné (alebo aspoň skontrolovať ich existenciu) a nedávať globálnym premenným názvy, ktoré sa zhodujú s indexmi poľa $ _SESSION.

Ak to nefunguje, ale nezobrazujú sa ani žiadne správy, pridajte na začiatok skriptu dva riadky, ktoré sú zodpovedné za zobrazenie VŠETKÝCH chýb na obrazovke - je celkom možné, že existujú chyby, ale jednoducho nevidíte ich.
ini_set ("display_errors", 1);
chybové hlásenie (E_ALL);

alebo si pozrite chyby v error_log. Vo všeobecnosti téma zobrazovania chybových hlásení presahuje rámec tohto článku, takže sa uistite, že ich aspoň vidíte. V tejto časti si môžete prečítať trochu viac podrobností o riešení problémov.

Ak ste si istí, že neexistujú žiadne chyby, ale uvedený príklad aj tak nefunguje, je možné, že PHP neumožňuje prenos id cez url, a súbory cookie z nejakého dôvodu nefungujú.
Pozrite sa, čo máte so súbormi cookie.
Vo všeobecnosti, ak vaše relácie „nefungujú“, skúste najskôr preniesť identifikátor relácie ručne, to znamená vytvoriť odkaz a priradiť mu identifikátor:
session_start ();
if (! isset ($ _ SESSION ["počítadlo"))) $ _SESSION ["počítadlo"] = 0;
ozvena "Aktualizovali ste túto stránku"... $ _SESSION ["počítadlo"] ++. "raz.

aktualizovať ";
?>

Keď to robíte, uistite sa, že direktíva session.use_only_cookies nie je povolená, čo bráni PHP akceptovať ID relácie, ak prešlo cez URL.

Ak tento príklad nefunguje, potom je problém buď v banálnom preklepy(polovica „problémov“ s reláciami pochádza z nesprávne napísaného názvu premennej), alebo v príliš starej verzii PHP: podpora relácií sa objavila vo verzii 4.0 a pole $ _SESSION- v 4.1 (predtým používané $ HTTP_SESSION_VARS).
Ak to funguje, problém je v súboroch cookie. Sledujte, aký druh súboru cookie server vkladá do prehliadača, či ho prehliadač vracia. Vyhľadávanie je veľmi užitočné pri pohľade na výmenu hlavičiek HTTP medzi prehliadačom a serverom.
Vysvetlenie, ako fungujú súbory cookie, presahuje rámec tohto už aj tak veľkého textu, ale aspoň sa uistite, že server odošle súbor cookie s identifikátorom a prehliadač sa vráti. A zatiaľ čo identifikátory sa navzájom zhodujú =)
Nastavenie súboru cookie by malo vyzerať takto
Set-Cookie: PHPSESSID = prlgdfbvlg5fbsbshch6hj0cq6;
alebo ako
Set-Cookie: PHPSESSID = prlgdfbvlg5fbsbshch6hj0cq6; cesta = /
(ak požadujete skript nie z koreňového adresára)
Odpoveď servera by mala vyzerať takto
Súbor cookie: PHPSESSID = prlgdfbvlg5fbsbshch6hj0cq6
alebo
Súbor cookie: PHPSESSID = prlgdfbvlg5fbsbshch6hj0cq6; b = b
ak prehliadač vráti iné súbory cookie okrem ID relácie.

Ak prehliadač nevracia súbory cookie, skontrolujte, či súbory cookie vôbec fungujú.
Uistite sa, že doména, ku ktorej pristupujete, má normálny názov (ktorý má aspoň jednu bodku a neobsahuje zakázané znaky, ako napríklad podčiarkovníky) a vymažte vyrovnávaciu pamäť prehliadača – to sú dva hlavné dôvody, prečo súbory cookie nemusia fungovať.

Ak príklad odtiaľto funguje, ale váš vlastný kód nie, potom problém zjavne nie je v reláciách, ale v algoritme. Vyhľadajte, kde ste stratili premennú, preneste príklad odtiaľto krok za krokom, odlaďte svoj skript.

Ďalší problém môže nastať, ak používate presmerovanie hlavičky alebo JavaScript navigáciu.
Faktom je, že PHP automaticky pripája identifikátor relácie iba k odkazom formulára
, ale nerobí to pre hlavičky, javascript, meta tagy.
Preto musíte identifikátor pridať ručne, napríklad takto:
hlavička ("Umiestnenie: /script.php?". názov_relácie (). "=". ID_relácie ());

Problém je tiež veľmi zriedkavý a nie je úplne jasné, odkiaľ problém pochádza, že nastavenie session.save_handler má inú hodnotu ako súbory. Ak to tak nie je, opravte to.

Bezpečnosť
Bezpečnosť relácie je rozsiahla téma. Preto sa zameriam na niekoľko hlavných bodov.
Najučebnicovejšia vec je nepredávať identifikátor cez riadok s adresou. Toto je napísané aj v php.ini, ale to obmedzuje funkčnosť relácií. Ak sa rozhodnete postupovať podľa tejto rady, potom okrem session.use_trans_sid = 0 nezabudnite na session.use_only_cookies = 1
Odporúča sa spojiť reláciu s IP adresou: týmto spôsobom, ak je identifikátor odcudzený, darebák ho vo väčšine prípadov stále nebude môcť použiť.
Odporúča sa použiť direktívu session.save_path, pomocou ktorej si môžete nastaviť vlastný adresár na ukladanie súborov relácie. Je to bezpečnejšie, ako keď sú uložené v predvolenom zdieľanom dočasnom adresári servera.

Ďalšie informácie:

  • Okrem súborov cookie mechanizmus relácie odosiela aj hlavičky, ktoré zakazujú ukladanie stránok do vyrovnávacej pamäte (rovnaký obmedzovač vyrovnávacej pamäte). Pre html je to správne a potrebné. Keď sa však pokúsite odoslať súbor so skriptom, ktorý kontroluje autorizáciu, Internet Explorer ho odmietne stiahnuť. Je to kvôli tomuto titulu. Zavolajte
    session_cache_limiter ("súkromné");
    musí vyriešiť problém pred začatím relácie.
  • Napodiv, ale v poli $ _SESSION nemôžete použiť číselné indexy - $ _SESSION [1], $ _SESSION ["10"]- relácie nebudú fungovať.
  • Niekde medzi 4.2 a 5.0 nebolo možné nastaviť session.use_trans_sid pomocou ini_set ()... Od 5.0 je to už opäť možné.
  • Pred verziou 4.3.3 odosielal súbor cookie PHP súbor cookie iba v prípade, že požiadavka na začiatku relácie neobsahovala identifikátor. Teraz sa súbor cookie odosiela pri každom hovore session_start ()

    Príklad autorizácie pomocou relácií
    Ilustrujme všetko vyššie na malom príklade:
    vytvoríme súbor auth.php:
    if (isset ($ _ POST ["auth_name"]))
    {
    $ sql = "SELECT * FROM users WHERE name =? S";
    $ row = $ db -> getRow ($ sql, $ _POST ["auth_name"]);
    if ($ riadok && password_verify ($ _POST ["auth_pass"], $ riadok ["pass"])) (
    $ _SESSION ["user_id"] = $ riadok ["id"];
    }
    hlavička ("Umiestnenie: http: //". $ _SERVER ["HTTP_HOST"]. $ _SERVER ["REQUEST_URI"]);
    východ;
    }

    if (isset ($ _ GET ["akcia") AND $ _GET ["akcia"] == "odhlásenie") (
    session_start ();
    session_destroy ();
    hlavička ("Umiestnenie: http: //". $ _SERVER ["HTTP_HOST"]. "/");
    východ;
    }

    if (! isset ($ _ SESSION ["user_id"])) (
    ?>








    východ;
    }

    Teraz stačí napísať riadok vo všetkých chránených skriptoch
    vyžadovať "auth.php";
    V tomto príklade sa predpokladá, že relácia už začala a pripojenie k databáze bolo vytvorené pomocou Class pre bezpečnú a pohodlnú prácu s MySQL. Tiež predpokladá, že heslo bolo hashované pomocou odporúčanej funkcie password_hash.
    Príklad chráneného súboru:

    session_start ();
    zahŕňajú "safemysql.class.php";
    $ db = nový safemysql (["db" => "test"]);
    zahrnúť "auth.php";
    ?>
    tajný

    odhlásiť sa

    OPS! Veľmi užitočné odkazy:
    http://www.php.net/manual/ru/ref.session.php - najnovšie a najaktuálnejšie informácie o podpore relácie v PHP v oficiálnej dokumentácii, plus početné komentáre používateľov. Čítanie vysoko odporúčané.
    http://phpclub.ru/manrus/f/ref.session.html - VEĽMI zastaraný preklad tejto kapitoly do ruštiny z dokumentácie preloženej Alexandrom Pyramidinom.
    http://phpclub.ru/detail/article/sessions
    Článok s honosným názvom „The Truth About Sessions“. Zanecháva ambivalentný dojem. Na začiatku autor hovorí o mechanizme relácie VEĽMI ľahko, ale metódy, ktoré navrhuje na konci článku, sú úplne bahnité.

    Učebnicový článok od Dmitrija Borodina zo stránky
    http://php.spb.ru/ sa dôrazne NEODPORÚČA.
    Chlapci, je strašne neaktuálna. Nielenže sú v ňom faktické nepresnosti, ale relácie v PHP sa jednoducho už dávno nepoužívajú.
    Dima za ňu veľmi pekne ďakujem, toto bol prvý článok o reláciách v ruštine, sám som to študoval, ale teraz ju potrebujem poslať na zaslúžený odpočinok.
    Taktiež, žiaľ, mnohé ďalšie články, ktoré sú na internete a roky neboli aktualizované, sú tiež zastarané.