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 @Alex :)
Рама Чандран М

Це допомагає +1 @Alex
Nikunj Vadariya

4
У поточному темпі заміна буде здійснена приблизно до 2026 року: D
Фабіан Шменглер

26

Я знаходжу це у програмах Magento2

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

Для підвищення безпеки від ін'єкцій XSS XssPhtmlTemplateTest.phpдодається статичний тест до dev \ testing \ static \ testinguite \ Magento \ Test \ Php.

Цей статичний тест знаходить усі ехо-виклики в PHTML-шаблонах і визначає, правильно його виконувати чи ні.

Він охоплює такі випадки:

  • /* @noEscape */перед виходом. Вихідні дані не потребують втечі. Тест зелений.

  • /* @escapeNotVerified */перед виходом. Вихідний вихід не перевіряється, і його слід перевірити. Тест зелений.

Прочитайте Документи Magento на версії 2.0 або 2.1

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.