Hash UserTokens for security improvement
This commit is contained in:
17
Core/Configuration/Patch/2024-12-08_UserToken-hashed.php
Normal file
17
Core/Configuration/Patch/2024-12-08_UserToken-hashed.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
use Core\Driver\SQL\Column\Column;
|
||||
use Core\Driver\SQL\Column\StringColumn;
|
||||
use Core\Driver\SQL\Expression\Hash;
|
||||
use Core\Objects\DatabaseEntity\UserToken;
|
||||
|
||||
$handler = UserToken::getHandler($sql);
|
||||
$columnSize = 512 / 8 * 2; // sha512 as hex
|
||||
$tokenTable = $handler->getTableName();
|
||||
$tokenColumn = $handler->getColumnName("token");
|
||||
|
||||
$queries[] = $sql->alterTable($tokenTable)
|
||||
->modify(new StringColumn($tokenColumn, $columnSize));
|
||||
|
||||
$queries[] = $sql->update($tokenTable)
|
||||
->set($tokenColumn, new Hash(Hash::SHA_512, new Column($tokenColumn)));
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
use Core\Driver\SQL\Column\DateTimeColumn;
|
||||
use Core\Driver\SQL\Expression\CurrentTimeStamp;
|
||||
use Core\Objects\DatabaseEntity\Session;
|
||||
|
||||
$handler = Session::getHandler($sql);
|
||||
$queries[] = $sql->alterTable($handler->getTableName())
|
||||
->add(new DateTimeColumn($handler->getColumnName("lastOnline"), false, new CurrentTimeStamp()));
|
||||
Reference in New Issue
Block a user