sql >> Databáze >  >> RDS >> Mysql

Jaký je správný a bezpečný/zabezpečený způsob, jak udržet uživatele přihlášeného? cookies? zasedání? PHP &&MYSQL

Nejprve vám řeknu toto. Nic není 100% bezpečné. Nic není vzduchotěsné a nic není svaté. Pokud je dostatečně motivován, útočník prolomí každou vaši obranu na straně serveru (pokud nepoužíváte HTTPS, což je jiný příběh).

Soubory cookie můžete používat, ale soubory cookie jsou velmi dobře přístupné a snadno upravitelné. Do souboru cookie nikdy neukládejte soukromá data ani úrovně přístupu. Protože je snadno odcizen/upraven útočníkem.

Ani relace nejsou 100% bezpečné. ID relace, které server používá k identifikaci klienta, je odesláno jedním ze dvou způsobů. proměnná $_GET (špatná) nebo cookie (lepší, ale stále dost špatná). To znamená, že pokud jste přihlášeni jako správce přes nezabezpečenou WiFi, může zkušený útočník (a tím myslím pr0 haxx0r, který si stáhl jednoduchý HTTP sniffer) snadno ukrást vaše SESSION ID. A i když server nezíská vaše heslo, nesprávně identifikuje útočníka jako vás a udělí mu jakýkoli přístup, který jste měli/měli.

Tak co dělat? Relace jsou ve většině případů bezpečné. Upozorněte své uživatele, aby se nepřihlašovali do nezabezpečené sítě (autobusy, internetové kavárny atd.). Pokud chcete, aby vaše oprávnění uživatele přetrvávalo v průběhu času, je vyžadován soubor cookie. Pokud to potřebuji, obvykle používám systém 2 souborů cookie:

userid=12345
hash=password_hash($userid . $hashed_password, PASSWORD_DEFAULT)

Pak mám něco, s čím se mohu porovnat, a podrobnosti o uživateli nebyly odhaleny.

Ale jak jsem řekl, nakonec, pokud jste opravdu SKUTEČNĚ chtěli zabezpečit své uživatele, pořiďte si HTTPS.



  1. Jak vyplnit chybějící data v MySQL?

  2. Jak zjistit, zda hodnota obsahuje alespoň jednu číselnou číslici v MariaDB

  3. Existuje ovladač Go Mysql, který podporuje více příkazů v rámci jednoho řetězce?

  4. Správa vysoké dostupnosti PostgreSQL – Část I:Automatické převzetí služeb při selhání PostgreSQL