From 1c09408c6459eb8d719d94ba593edfa44883cb85 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 22 Sep 2024 11:05:06 +0200 Subject: Fix HTML encodings in e.g. cURL options (#6821) * Fix HTML encodings in e.g. cURL options * Trim headers whitespace --- app/Controllers/feedController.php | 15 ++++++++------- app/Controllers/subscriptionController.php | 15 ++++++++------- app/layout/aside_configure.phtml | 2 +- app/views/helpers/feed/update.phtml | 15 +++++++++------ lib/Minz/Request.php | 9 +++++---- lib/core-extensions/UserCSS/extension.php | 4 ++-- lib/core-extensions/UserJS/extension.php | 4 ++-- 7 files changed, 35 insertions(+), 29 deletions(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index c2d25821d..105099966 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -170,15 +170,15 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { $http_auth = $user . ':' . $pass; } - $cookie = Minz_Request::paramString('curl_params_cookie'); + $cookie = Minz_Request::paramString('curl_params_cookie', plaintext: true); $cookie_file = Minz_Request::paramBoolean('curl_params_cookiefile'); $max_redirs = Minz_Request::paramInt('curl_params_redirects'); - $useragent = Minz_Request::paramString('curl_params_useragent'); - $proxy_address = Minz_Request::paramString('curl_params'); - $proxy_type = Minz_Request::paramString('proxy_type'); - $request_method = Minz_Request::paramString('curl_method'); - $request_fields = Minz_Request::paramString('curl_fields', true); - $headers = Minz_Request::paramTextToArray('http_headers'); + $useragent = Minz_Request::paramString('curl_params_useragent', plaintext: true); + $proxy_address = Minz_Request::paramString('curl_params', plaintext: true); + $proxy_type = Minz_Request::paramString('proxy_type', plaintext: true); + $request_method = Minz_Request::paramString('curl_method', plaintext: true); + $request_fields = Minz_Request::paramString('curl_fields', plaintext: true); + $headers = Minz_Request::paramTextToArray('http_headers', plaintext: true); $opts = []; if ($proxy_type !== '') { @@ -210,6 +210,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } } if(!empty($headers)) { + $headers = array_filter(array_map('trim', $headers)); $opts[CURLOPT_HTTPHEADER] = array_merge($headers, $opts[CURLOPT_HTTPHEADER] ?? []); } diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index 225e93f95..e2e3bbf11 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -138,15 +138,15 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController { } $feed->_attribute('read_when_same_title_in_feed', $read_when_same_title_in_feed); - $cookie = Minz_Request::paramString('curl_params_cookie'); + $cookie = Minz_Request::paramString('curl_params_cookie', plaintext: true); $cookie_file = Minz_Request::paramBoolean('curl_params_cookiefile'); $max_redirs = Minz_Request::paramInt('curl_params_redirects'); - $useragent = Minz_Request::paramString('curl_params_useragent'); - $proxy_address = Minz_Request::paramString('curl_params'); - $proxy_type = Minz_Request::paramString('proxy_type'); - $request_method = Minz_Request::paramString('curl_method'); - $request_fields = Minz_Request::paramString('curl_fields', true); - $headers = Minz_Request::paramTextToArray('http_headers'); + $useragent = Minz_Request::paramString('curl_params_useragent', plaintext: true); + $proxy_address = Minz_Request::paramString('curl_params', plaintext: true); + $proxy_type = Minz_Request::paramString('proxy_type', plaintext: true); + $request_method = Minz_Request::paramString('curl_method', plaintext: true); + $request_fields = Minz_Request::paramString('curl_fields', plaintext: true); + $headers = Minz_Request::paramTextToArray('http_headers', plaintext: true); $opts = []; if ($proxy_type !== '') { $opts[CURLOPT_PROXY] = $proxy_address; @@ -179,6 +179,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController { } if(!empty($headers)) { + $headers = array_filter(array_map('trim', $headers)); $opts[CURLOPT_HTTPHEADER] = array_merge($headers, $opts[CURLOPT_HTTPHEADER] ?? []); } diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml index 4d4571c4e..06c5efa83 100644 --- a/app/layout/aside_configure.phtml +++ b/app/layout/aside_configure.phtml @@ -6,7 +6,7 @@