summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-11-16 17:36:11 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-11-16 17:36:11 +0000
commitdc6156d0b8e2208e9bec8da8967fa5ce33109652 (patch)
treeb81c73938e11563625f89841bcb7c66b8399df85
parent98116b24f349a13d59c9798d52b3efc6d56bfa47 (diff)
downloadwebtrees-dc6156d0b8e2208e9bec8da8967fa5ce33109652.tar.gz
webtrees-dc6156d0b8e2208e9bec8da8967fa5ce33109652.tar.bz2
webtrees-dc6156d0b8e2208e9bec8da8967fa5ce33109652.zip
Detect and close sessions - e.g. created by ninjafirewall
-rw-r--r--app/Http/Middleware/UseSession.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/Http/Middleware/UseSession.php b/app/Http/Middleware/UseSession.php
index 54f7cb8f9a..3fb28d5cb4 100644
--- a/app/Http/Middleware/UseSession.php
+++ b/app/Http/Middleware/UseSession.php
@@ -28,6 +28,11 @@ use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
+use function session_destroy;
+use function session_status;
+
+use const PHP_SESSION_ACTIVE;
+
/**
* Middleware to activate sessions.
*/
@@ -41,6 +46,12 @@ class UseSession implements MiddlewareInterface
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
+ // Some sites (e.g. Wordpress/NinjaFirewall) use the PHP auto_prepend_file
+ // setting to run their own startup code - which may start a session.
+ if (session_status() === PHP_SESSION_ACTIVE) {
+ session_destroy();
+ }
+
// Sessions
Session::start($request);