fix: Расчет хеша для браузера
This commit is contained in:
parent
548d5daaa9
commit
6ae14fd5f0
2 changed files with 12 additions and 15 deletions
|
|
@ -36,10 +36,11 @@ class Authorization {
|
||||||
|
|
||||||
$_SESSION [$group] = $id;
|
$_SESSION [$group] = $id;
|
||||||
$_SESSION [self::SESSION_BROWSER_SIGN_KEYNAME] = self::getBrowserSign();
|
$_SESSION [self::SESSION_BROWSER_SIGN_KEYNAME] = self::getBrowserSign();
|
||||||
|
$_SESSION ["sign"] = self::getRawSign();
|
||||||
$_SESSION ["time"] = time();
|
$_SESSION ["time"] = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
static function getBrowserSign()
|
static function getRawSign()
|
||||||
{
|
{
|
||||||
$rawSign = self::SESSION_BROWSER_SIGN_SECRET;
|
$rawSign = self::SESSION_BROWSER_SIGN_SECRET;
|
||||||
$signParts = ['HTTP_USER_AGENT'];
|
$signParts = ['HTTP_USER_AGENT'];
|
||||||
|
|
@ -47,7 +48,14 @@ class Authorization {
|
||||||
foreach ($signParts as $signPart) {
|
foreach ($signParts as $signPart) {
|
||||||
$rawSign .= '::' . (isset($_SERVER[$signPart]) ? $_SERVER[$signPart] : 'none');
|
$rawSign .= '::' . (isset($_SERVER[$signPart]) ? $_SERVER[$signPart] : 'none');
|
||||||
}
|
}
|
||||||
return md5($rawSign);
|
|
||||||
|
return $rawSign;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getBrowserSign()
|
||||||
|
{
|
||||||
|
|
||||||
|
return md5(self::getRawSign());
|
||||||
}
|
}
|
||||||
|
|
||||||
function logout() {
|
function logout() {
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ class Login extends Filter
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
$hash = $this->getBrowserSign();
|
$hash = Authorization::getBrowserSign();
|
||||||
// Если $hash не совпадает $_SESSION['hash'] то удаляем сессию
|
// Если $hash не совпадает $_SESSION['hash'] то удаляем сессию
|
||||||
if (isset($_SESSION ['access']) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
|
if (isset($_SESSION ['access']) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
|
||||||
if ($hash == $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME]) {
|
if ($hash == $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME]) {
|
||||||
|
|
@ -125,17 +125,6 @@ class Login extends Filter
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getBrowserSign() {
|
|
||||||
$rawSign = self::SESSION_BROWSER_SIGN_SECRET;
|
|
||||||
//$signParts = array('HTTP_USER_AGENT', 'HTTP_ACCEPT_ENCODING');
|
|
||||||
$signParts = array();
|
|
||||||
|
|
||||||
foreach ($signParts as $signPart) {
|
|
||||||
$rawSign .= '::' . (isset($_SERVER[$signPart]) ? $_SERVER[$signPart] : 'none');
|
|
||||||
}
|
|
||||||
return md5($rawSign);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function enter($result)
|
private function enter($result)
|
||||||
{
|
{
|
||||||
$this->user = $result;
|
$this->user = $result;
|
||||||
|
|
@ -145,7 +134,7 @@ class Login extends Filter
|
||||||
$_SESSION["group"] = $result->getInt('access');
|
$_SESSION["group"] = $result->getInt('access');
|
||||||
$_SESSION["access"] = $result->getInt('id_user'); // id_user
|
$_SESSION["access"] = $result->getInt('id_user'); // id_user
|
||||||
$_SESSION["random"] = $random; // id_user
|
$_SESSION["random"] = $random; // id_user
|
||||||
$_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME] = $this->getBrowserSign();
|
$_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME] = Authorization::getBrowserSign();
|
||||||
$_SESSION["time"] = time();
|
$_SESSION["time"] = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue