Portál AbcLinuxu, 10. května 2025 11:55
... a uživatel musí mít povolené cookies...Uživatel, který má cookies zakázané se stejně nepřihlásí na většinu webů, jelikož je přihlášování většinou řešené právě tím to způsobem. Zadruhé, když je má zakázané, asi ví, co dělá a měla by mu stačit hláška, že si má cookies pro přihlášení povolit. Takže bych povolení/nepovolení cookies na straně uživatele jako problém neviděl.
$_SESSION
proměná, ktéré se při standardním přihlášení ukládají do přednastaveného adresáře. Tento adresář lze změnit i ze skriptu (pokud máte server pod kontrolou a je Vám to umožněno) pomocí fce session_save_path()
.$_SESSION
zašifrovaná na základě třeba něčeho v konfiguračním souboru php aplikace či certifikátu, a k tomuto souboru umožníte přístup jen pro čtení a jen uživateli, na kterého běží web server. (někdo bude argumentovat, že je to „security by obscurity“, ale není, je to jiná level, ne každý se může přihlásit na uživatele 'wwwrun', nebo jiného na kterého běží web server.) - já bych tam ještě před tím vložil nějaký obskurní prvek (otočil heslo, pokud má lichý počet znaků tak něco a tak), bo i to může být někdy součástí zabezpečení (buď to prodlouží, nepatrně čas k získání hesel, nebo to znemožní, člověku neznalému co se mu to dostalo do ruky, včetně certifikátu či master hesla to prokouknout).<?php error_reporting(0); ini_set('display_errors', 'Off'); ini_set("session.use_only_cookies", "0"); ini_set("session.use_cookies", "1"); ini_set("session.use_trans_sid","1"); ini_set("session.name", "uidhash"); session_start(); echo ini_get(); error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 'On'); if(!isset($_SESSION['test'])) $_SESSION['test'] = '???'; echo 'Last time: '. $_SESSION['test'] . ', now: ' . time() . '<br />'; $_SESSION['test']=time(); ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" > <input type="submit" /> </form> <a href="<?php echo $_SERVER['PHP_SELF'];?>">link</a>Vypněte cookies v prohlížeči a refreshněte stránku a zkuste znovu - a podívejte se na zdrojová kód stránky.
echo ini_get();
na 10. řádku je tam zbytečné-nesmyslné zakomentujte si jej :)
session_set_save_handler()
a pro připojení k DB použijete master heslo s uživatelem oprávněným zapisovat jen do té tabulky či db pro session proměnné.
$_SERVER['PHP_AUTH_USER']
a $_SERVER['PHP_AUTH_PW']
.
taky není ideální, protože při každém požadavku se jméno a heslo přenáší znovu na serverJak to vadí?
$cfg['Servers'][$i]['auth_type']
metodu přihlášení a od ní odvinutý způsob uložení informací viz třeba zde.$cfg['blowfish_secret']
), z hlediska bezpečnosti na to může být dvojí pohled. Heslo je zašifrované jinde, než je klíč - což je dobře, ale zašifrované heslo je veřejné - což nemusí vadit (mně to vadí z toho důvodu, že zašifrovná hesla se mohou nasbírat a pak stačí mít tu passfrázi (nechťa uteče :)). Pokud by byla zašifrovaná hesla na serveru jen nezbytně dlouho dobu, je těžké je nasbírat a není to tak zlé, bo ji(passfrazi) změním a hotovo, ale když to chodí pryč je třeba změnit všechna hesla hned.).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.