From 5a1d131c2e6b7ebfb8ebd06a22163bf34acddab8 Mon Sep 17 00:00:00 2001 From: jie Date: Fri, 23 Jul 2021 18:43:04 +0800 Subject: [PATCH] TrimString middleware adds invisible characters --- .../Foundation/Http/Middleware/TrimStrings.php | 2 +- .../Http/Middleware/TrimStringsTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php b/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php index fe8f8f872043..857baf4b49d3 100644 --- a/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php +++ b/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php @@ -53,7 +53,7 @@ protected function transform($key, $value) return $value; } - return is_string($value) ? trim($value) : $value; + return is_string($value) ? trim($value, "  \t\n\r\0\x0B") : $value; } /** diff --git a/tests/Foundation/Http/Middleware/TrimStringsTest.php b/tests/Foundation/Http/Middleware/TrimStringsTest.php index 33262af684f7..5003dc1bf0ba 100644 --- a/tests/Foundation/Http/Middleware/TrimStringsTest.php +++ b/tests/Foundation/Http/Middleware/TrimStringsTest.php @@ -28,6 +28,21 @@ public function testTrimStringsIgnoringExceptAttribute() $this->assertSame(' 010 ', $request->get('bar')); }); } + + public function testTrimStringsNBSP() + { + $middleware = new TrimStrings; + $symfonyRequest = new SymfonyRequest([ + // Here has some NBSP, but it still display to space. + 'abc' => '  123   ', + ]); + $symfonyRequest->server->set('REQUEST_METHOD', 'GET'); + $request = Request::createFromBase($symfonyRequest); + + $middleware->handle($request, function (Request $request) { + $this->assertSame('123', $request->get('abc')); + }); + } } class TrimStringsWithExceptAttribute extends TrimStrings