Remove all malformed cookies in middleware
This commit is contained in:
@@ -66,8 +66,9 @@ class BookingUrlUtility
|
|||||||
$bpnCookie = null;
|
$bpnCookie = null;
|
||||||
|
|
||||||
if (isset($_COOKIE[static::COOKIE_NAME])) {
|
if (isset($_COOKIE[static::COOKIE_NAME])) {
|
||||||
if (false === preg_match('/([a-z]{4}|PA)\d{4}/', $_COOKIE[static::COOKIE_NAME])) {
|
if (!preg_match('/^([a-z]{4}|PA)\d{4}$/', $_COOKIE[static::COOKIE_NAME])) {
|
||||||
setcookie(static::COOKIE_NAME, '', time() - 3600);
|
setcookie(static::COOKIE_NAME, '', time() - 3600);
|
||||||
|
unset($_COOKIE[static::COOKIE_NAME]);
|
||||||
} else {
|
} else {
|
||||||
$trackingCookie = $_COOKIE[static::COOKIE_NAME];
|
$trackingCookie = $_COOKIE[static::COOKIE_NAME];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ class TrackingMiddleware implements MiddlewareInterface
|
|||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||||
{
|
{
|
||||||
|
$this->cleanupCookies();
|
||||||
|
|
||||||
if ($redirect = $this->matchRedirect($request)) {
|
if ($redirect = $this->matchRedirect($request)) {
|
||||||
[$uri, $responseCode] = $redirect;
|
[$uri, $responseCode] = $redirect;
|
||||||
|
|
||||||
@@ -165,6 +167,18 @@ class TrackingMiddleware implements MiddlewareInterface
|
|||||||
setcookie(static::COOKIE_NAME, $code, $expiratonDate->getTimestamp(), '/');
|
setcookie(static::COOKIE_NAME, $code, $expiratonDate->getTimestamp(), '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function cleanupCookies(): void
|
||||||
|
{
|
||||||
|
if (!isset($_COOKIE[static::COOKIE_NAME])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!preg_match('/^' . static::CODE_PATTERN . '$/', $_COOKIE[static::COOKIE_NAME])) {
|
||||||
|
setcookie(static::COOKIE_NAME, '', time() - 3600);
|
||||||
|
unset($_COOKIE[static::COOKIE_NAME]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Borrowed from \TYPO3\CMS\Redirects\Service\RedirectService
|
* Borrowed from \TYPO3\CMS\Redirects\Service\RedirectService
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user