Magento 2 @escapeNotVerified

65

Wiele razy widzę ten komentarz /* @escapeNotVerified */w plikach szablonów Magento2.
Czy to ma szczególne znaczenie?
Czy ma to jakieś zastosowanie?

Przykłady:

Marius
źródło
25
Hej ... Dlaczego głosowanie negatywne? Nie wolno mi zadawać pytań?
Marius

Odpowiedzi:

95

Ten znacznik jest używany w testach statycznych. Wszelkie wyjście potencjalnie niebezpieczne muszą być oznakowane albo @escapeNotVerifiedalbo @noEscapeprzejść testy, to ostatnie oznacza, że ten szczególny zwyczaj został sprawdzony i jest bezpieczny.

W przyszłych wersjach wszystkie wystąpienia @escapeNotVerifiedbędą weryfikowane i oznaczone albo za @noEscapepomocą jednej z tych metod:

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

Należy również pamiętać, że niektóre dane wyjściowe są uważane za bezpieczne i nie powinny być oznaczone takimi adnotacjami:

  • Ujęte w pojedyncze cytaty
  • Ujęte w podwójne cudzysłowy, ale bez zmiennych
  • Wpisz casting do bool, int
  • Wywołania metod, które zawierają w nazwach „html” getTitleHtml, również powinny wyświetlać kod ucieczki HTML
Alex Paliarush
źródło
3
Wielka odpowiedź @Alex
Amit Bera
Dobry Ans +1 @Alex :)
Rama Chandran M
Pomaga +1 @Alex
Nikunj Vadariya
4
W obecnym tempie wymiana odbędzie się około 2026 r .: D
Fabian Schmengler
26

Znajduję to w devdocs Magento2

Test statyczny

Aby poprawić bezpieczeństwo przed wstrzyknięciami XSS, XssPhtmlTemplateTest.phpdo dev \ test \ static \ testsuite \ Magento \ Test \ Php dodaje się test statyczny.

Ten test statyczny odnajduje wszystkie wywołania echa w szablonach PHTML i określa, czy jest poprawnie uciekany czy nie.

Obejmuje następujące przypadki:

  • /* @noEscape */przed wyjściem. Wyjście nie wymaga ucieczki. Test jest zielony.

  • /* @escapeNotVerified */przed wyjściem. Wyjście wyjściowe nie jest sprawdzane i powinno zostać zweryfikowane. Test jest zielony.

Przeczytaj Dokumenty Magento w wersji 2.0 lub 2.1

Rachunek
źródło