[BUGFIX] Make encoding of parameters for cHash independent of PHP settings 23/52923/2
authorMarkus Klein <markus.klein@typo3.org>
Tue, 23 May 2017 20:51:35 +0000 (22:51 +0200)
committerBenni Mack <benni@typo3.org>
Wed, 24 May 2017 09:58:05 +0000 (11:58 +0200)
commit7c8f5be9635dc5a60e26e88d0ccbb8955de5a29a
treeb27b783c2dc7b9e4569c5a592b25e9591d64368c
parent50e3bad243f9d5faa293b6638885d582346a8d74
[BUGFIX] Make encoding of parameters for cHash independent of PHP settings

http_build_query() internally uses the PHP setting arg-separator.output
to identify the URL parameter separator.
Our code relies on having a simple ampersand as this character.
If the PHP is set to a different configuration the code will fail.

This is fixed by enforcing the ampersand. Moreover we force RFC3986
encoding to ensure that decoding with rawurldecode() does the right
thing.

Change-Id: I92f9b877201c634303a2e387d9aad49106151f63
Releases: master, 8.7
Resolves: #81293
Reviewed-on: https://review.typo3.org/52923
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
typo3/sysext/extbase/Classes/Mvc/Web/CacheHashEnforcer.php