Magento 2 @escapeNotVerified


65

Я вижу много случаев этого комментария /* @escapeNotVerified */в файлах шаблонов для Magento2.
Имеет ли это особое значение?
Есть ли польза для этого?

Примеры:


25
Эй ... Почему понизить? Мне не разрешено задавать вопросы?
Мариус

Ответы:


95

Этот тег используется статическими тестами. Любые потенциально небезопасные выходные данные должны быть помечены @escapeNotVerifiedили @noEscapeдля прохождения тестов, последнее означает, что это конкретное использование было проверено и является безопасным.

В будущих выпусках все вхождения @escapeNotVerifiedбудут проверены и помечены @noEscapeили исключены одним из следующих методов:

  • \Magento\Framework\View\Element\AbstractBlock::escapeHtml
  • \Magento\Framework\View\Element\AbstractBlock::escapeUrl
  • \Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl
  • \Magento\Framework\View\Element\AbstractBlock::escapeQuote

Также обратите внимание, что некоторые выходные данные считаются безопасными и не должны быть отмечены такими аннотациями:

  • Заключено в одинарные кавычки
  • Заключено в двойные кавычки, но без переменных
  • Тип приведения к bool, int
  • getTitleHtmlОжидается, что вызовы методов, которые содержат html в своих именах , также будут выводить экранированный HTML

3
Ответ великих @Alex
Амит Бера

Хороший ответ +1 @ Алекс :)
Рама Чандран М

Помогает +1
@ Алекс

4
При нынешнем темпе замена будет сделана примерно в 2026 году: D
Фабиан Шменглер

26

Я нахожу это в devdocs Magento2

Статический тест

Для повышения безопасности от инъекций XSS XssPhtmlTemplateTest.phpв dev \ tests \ static \ testsuite \ Magento \ Test \ Php добавлен статический тест .

Этот статический тест находит все эхо-вызовы в PHTML-шаблонах и определяет, правильно ли он экранирован или нет.

Он охватывает следующие случаи:

  • /* @noEscape */до выхода. Выход не требует выхода. Тест зеленый.

  • /* @escapeNotVerified */до выхода. Выходной выход не проверяется и должен быть проверен. Тест зеленый.

Читайте Magento Docs на 2.0 или 2.1

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.