Я вижу много случаев этого комментария /* @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 */
до выхода. Выходной выход не проверяется и должен быть проверен. Тест зеленый.