Skip to content

Commit 837db46

Browse files
committed
Update setcookie calls to use associative array syntax for improved readability and stricter cookie handling options (samesite: Strict).
1 parent ff41431 commit 837db46

4 files changed

Lines changed: 29 additions & 24 deletions

File tree

src/php/Auth/OAuthAuth.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,15 @@ public function userInfoToLogin(?string $currentUser = null, ?string $password =
258258
$generatedClientID = IMUtil::generateClientId('', $credential);
259259
$challenge = IMUtil::generateChallenge();
260260
$dbProxy->saveChallenge($param["username"], $challenge, $generatedClientID, "+");
261-
setcookie('_im_credential_token',
262-
$dbProxy->generateCredential($challenge, $generatedClientID, $credential),
263-
time() + $authExpired, '/', "", false, true);
264-
setcookie("_im_username_{$oAuthRealm}",
265-
$param["username"], time() + $authExpired, '/', "", false, false);
266-
setcookie("_im_clientid_{$oAuthRealm}",
267-
$generatedClientID, time() + $authExpired, '/', "", false, false);
261+
setcookie('_im_credential_token', $dbProxy->generateCredential($challenge, $generatedClientID, $credential),
262+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
263+
'secure' => false, 'httponly' => true, 'samesite' => 'Strict']);
264+
setcookie("_im_username_{$oAuthRealm}", $param["username"],
265+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
266+
'secure' => false, 'httponly' => false, 'samesite' => 'Strict']);
267+
setcookie("_im_clientid_{$oAuthRealm}", $generatedClientID,
268+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
269+
'secure' => false, 'httponly' => false, 'samesite' => 'Strict']);
268270
}
269271

270272
if ($this->debugMode) {

src/php/DB/Support/ActionHandlers/ActionHandler.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -425,18 +425,19 @@ protected function setCookieOfChallenge(string $key, string $challenge, string $
425425
Logger::getInstance()->setDebugMessage("[setCookieOfChallenge] key={$key} value{$challenge}/{$generatedClientID}/{$hashedPassword}", 2);
426426
$proxy = $this->proxy;
427427
$dbSettings = $proxy->dbSettings;
428-
setcookie($key,
429-
$proxy->generateCredential($challenge, $generatedClientID, $hashedPassword),
430-
time() + $dbSettings->getAuthenticationItem('authexpired'), '/',
431-
$proxy->credentialCookieDomain, false, true);
428+
setcookie($key, $proxy->generateCredential($challenge, $generatedClientID, $hashedPassword),
429+
['expires' => time() + $dbSettings->getAuthenticationItem('authexpired'), 'path' => '/',
430+
'domain' => $proxy->credentialCookieDomain, 'secure' => false, 'httponly' => true, 'samesite' => 'Strict']);
432431
}
433432

434433
/** Clears authentication cookies.
435434
* @return void
436435
*/
437436
protected function clearAuthenticationCookies(): void
438437
{
439-
setcookie("_im_credential_token", "", time() - 3600); // Should be removed.
440-
setcookie("_im_credential_2FA", "", time() - 3600); // Should be removed.
438+
setcookie("_im_credential_token", "",
439+
['expires' => time() - 3600, 'path' => '/', 'samesite' => 'Strict']); // Should be removed.
440+
setcookie("_im_credential_2FA", "",
441+
['expires' => time() - 3600, 'path' => '/', 'samesite' => 'Strict']); // Should be removed.
441442
}
442443
}

src/php/DB/Support/ActionHandlers/AuthPasskeyHandler.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,15 @@ public function handleChallenge(): void
128128
$generatedClientID = IMUtil::generateClientId('', $this->credential);
129129
$challenge = IMUtil::generateChallenge();
130130
$this->proxy->saveChallenge($this->username, $challenge, $generatedClientID, "+");
131-
setcookie('_im_credential_token',
132-
$this->proxy->generateCredential($challenge, $generatedClientID, $this->credential),
133-
time() + $authExpired, '/', "", false, true);
134-
setcookie("_im_username_{$authRealm}",
135-
$this->username, time() + $authExpired, '/', "", false, false);
136-
setcookie("_im_clientid_{$authRealm}",
137-
$generatedClientID, time() + $authExpired, '/', "", false, false);
131+
setcookie('_im_credential_token', $this->proxy->generateCredential($challenge, $generatedClientID, $this->credential),
132+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
133+
'secure' => false, 'httponly' => true, 'samesite' => 'Strict']);
134+
setcookie("_im_username_{$authRealm}", $this->username,
135+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
136+
'secure' => false, 'httponly' => false, 'samesite' => 'Strict']);
137+
setcookie("_im_clientid_{$authRealm}", $generatedClientID,
138+
['expires' => time() + $authExpired, 'path' => '/', 'domain' => '',
139+
'secure' => false, 'httponly' => false, 'samesite' => 'Strict']);
138140
}
139141
}
140142
}

src/php/DB/Support/Proxy_Auth.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,11 @@ public function handleMediaToken(): void
245245
$cookieNameToken .= ('_' . $realm);
246246
}
247247
setcookie($cookieNameToken, $generatedChallenge,
248-
time() + $this->dbSettings->getAuthenticationItem('authexpired'), '/',
249-
$this->credentialCookieDomain, false, true);
248+
['expires' => time() + $this->dbSettings->getAuthenticationItem('authexpired'), 'path' => '/',
249+
'domain' => $this->credentialCookieDomain, 'secure' => false, 'httponly' => true, 'samesite' => 'Strict']);
250250
setcookie($cookieNameUser, $this->paramAuthUser,
251-
time() + $this->dbSettings->getAuthenticationItem('authexpired'), '/',
252-
$this->credentialCookieDomain, false, false);
251+
['expires' => time() + $this->dbSettings->getAuthenticationItem('authexpired'), 'path' => '/',
252+
'domain' => $this->credentialCookieDomain, 'secure' => false, 'httponly' => false, 'samesite' => 'Strict']);
253253
$this->logger->setDebugMessage("mediatoken stored", 2);
254254
}
255255
}

0 commit comments

Comments
 (0)