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

Билл
источник