Я вижу много случаев этого комментария /* @escapeNotVerified */в файлах шаблонов для Magento2.
Имеет ли это особое значение?
Есть ли польза для этого?
Примеры:
Я вижу много случаев этого комментария /* @escapeNotVerified */в файлах шаблонов для Magento2.
Имеет ли это особое значение?
Есть ли польза для этого?
Примеры:
Ответы:
Этот тег используется статическими тестами. Любые потенциально небезопасные выходные данные должны быть помечены @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Также обратите внимание, что некоторые выходные данные считаются безопасными и не должны быть отмечены такими аннотациями:
getTitleHtmlОжидается, что вызовы методов, которые содержат html в своих именах , также будут выводить экранированный HTMLЯ нахожу это в devdocs Magento2
Статический тест
Для повышения безопасности от инъекций XSS XssPhtmlTemplateTest.phpв dev \ tests \ static \ testsuite \ Magento \ Test \ Php добавлен статический тест .
Этот статический тест находит все эхо-вызовы в PHTML-шаблонах и определяет, правильно ли он экранирован или нет.
Он охватывает следующие случаи:
/* @noEscape */до выхода. Выход не требует выхода. Тест зеленый.
/* @escapeNotVerified */до выхода. Выходной выход не проверяется и должен быть проверен. Тест зеленый.