Repository navigation
fix(security): не исполнять теги покупателя в Telegram и SMS - #935
Merged
Merged
Conversation
#929) Рендер этих каналов маскирует открывающие последовательности тем же guard, что и письмо. Для Telegram значения ещё экранируются под parse_mode=HTML.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
Шаблоны Telegram и SMS рендерились через
getChunk()без маскировки тегов в данных покупателя. Email такую маскировку уже имел.nonce/neutralize/restoreвынесены вTemplateTagGuard. Письмо вызывает тот же класс, порядок сборки темы и тела не менялся.renderTemplate()для Telegram и SMS маскирует значения доgetChunk()и возвращает их после. Для Telegram значения дополнительно проходятhtmlspecialcharsподparse_mode=HTML. SMS остаётся обычным текстом. Штатные сообщения без чанка не трогались.Тип изменений
Связанные Issues
Closes #929
Как это было протестировано?
php -lна изменённых PHP-файлах, smokephp tests/EmailTagInjectionGuardTest.php, PHPUnitTemplateTagGuardTestиEmailChannelTagHandlingTest(29 тестов). Полныйcomposer ci:phpи PHPStan не запускал.composer ci:php/composer test,npm run lint:ci,composer stan/ GitHub Actions CI)Конфигурация тестирования:
betaСкриншоты (если применимо)
Чеклист
composer stan/ CI jobPHPStan)npm run lint:ciдля Vue)Дополнительные заметки
CHANGELOG не трогал: записи добавляются при подготовке релиза. Лексиконы и Vue не менялись.