Add CSP header and session rotation on login
Content-Security-Policy: default-src 'self'; restricts external resource loading. Session rotation: delete all existing sessions for a user on login, so re-logging invalidates any leaked tokens.
This commit is contained in:
@@ -14,6 +14,7 @@ set_exception_handler(function($e) use ($logFile) {
|
|||||||
|
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
|
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
|
||||||
|
header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data:; font-src 'self'; form-action 'self'; frame-ancestors 'none'; base-uri 'self'; object-src 'none'");
|
||||||
|
|
||||||
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
|
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
|
||||||
if ($origin && preg_match('#^https?://(localhost|127\.0\.0\.1)(:\d+)?$#', $origin)) {
|
if ($origin && preg_match('#^https?://(localhost|127\.0\.0\.1)(:\d+)?$#', $origin)) {
|
||||||
@@ -297,6 +298,9 @@ try {
|
|||||||
$upd->execute();
|
$upd->execute();
|
||||||
}
|
}
|
||||||
clearAttempts($db);
|
clearAttempts($db);
|
||||||
|
$delSessions = $db->prepare('DELETE FROM sessions WHERE user_id=:uid');
|
||||||
|
$delSessions->bindValue(':uid', $user['id'], SQLITE3_INTEGER);
|
||||||
|
$delSessions->execute();
|
||||||
$defaultFolders = ['All', 'Social', 'Banking', 'Work', 'Personal'];
|
$defaultFolders = ['All', 'Social', 'Banking', 'Work', 'Personal'];
|
||||||
$stFolder = $db->prepare('INSERT OR IGNORE INTO folders (user_id, name) VALUES (:uid, :name)');
|
$stFolder = $db->prepare('INSERT OR IGNORE INTO folders (user_id, name) VALUES (:uid, :name)');
|
||||||
foreach ($defaultFolders as $name) {
|
foreach ($defaultFolders as $name) {
|
||||||
|
|||||||
Reference in New Issue
Block a user