From a220396fcc9dbcc276f463b904a3c365901e3f29 Mon Sep 17 00:00:00 2001 From: Alex P Date: Mon, 23 May 2022 10:23:06 +0300 Subject: [PATCH] Use filter_var for REQUEST_URI In some cases filter_input returns NULL for server variables even though they are present. Such as this bug https://bugs.php.net/bug.php?id=49184, though not only in CLI. At least in our DDEV it happens here. --- modules/ppcp-vaulting/src/CustomerApprovalListener.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/ppcp-vaulting/src/CustomerApprovalListener.php b/modules/ppcp-vaulting/src/CustomerApprovalListener.php index ec8cdd99b..7e2f1406a 100644 --- a/modules/ppcp-vaulting/src/CustomerApprovalListener.php +++ b/modules/ppcp-vaulting/src/CustomerApprovalListener.php @@ -58,7 +58,8 @@ class CustomerApprovalListener { return; } - $url = (string) filter_input( INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_URL ); + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash + $url = (string) filter_var( $_SERVER['REQUEST_URI'] ?? '', FILTER_SANITIZE_URL ); $query = wp_parse_url( $url, PHP_URL_QUERY ); if ( $query && str_contains( $query, 'ppcp_vault=cancel' ) ) {