From 7946be2b951612366b31a7b2c222cf2aa10a8e9b Mon Sep 17 00:00:00 2001 From: Thomas Calvet Date: Tue, 16 Feb 2021 12:01:18 +0100 Subject: [PATCH] [WebLink] Escape double quotes in attributes values --- src/Symfony/Component/WebLink/HttpHeaderSerializer.php | 4 ++-- .../Component/WebLink/Tests/HttpHeaderSerializerTest.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/WebLink/HttpHeaderSerializer.php b/src/Symfony/Component/WebLink/HttpHeaderSerializer.php index 85a9d0e433..2ecdff0905 100644 --- a/src/Symfony/Component/WebLink/HttpHeaderSerializer.php +++ b/src/Symfony/Component/WebLink/HttpHeaderSerializer.php @@ -39,14 +39,14 @@ final class HttpHeaderSerializer foreach ($link->getAttributes() as $key => $value) { if (\is_array($value)) { foreach ($value as $v) { - $attributesParts[] = sprintf('%s="%s"', $key, $v); + $attributesParts[] = sprintf('%s="%s"', $key, preg_replace('/(?assertNull($this->serializer->serialize([])); } + + public function testSerializeDoubleQuotesInAttributeValue() + { + $this->assertSame('; rel="alternate"; title="\"escape me\" \"already escaped\" \"\"\""', $this->serializer->serialize([ + (new Link('alternate', '/foo')) + ->withAttribute('title', '"escape me" \"already escaped\" ""\"'), + ])); + } }