Wiele razy widzę ten komentarz /* @escapeNotVerified */
w plikach szablonów Magento2.
Czy to ma szczególne znaczenie?
Czy ma to jakieś zastosowanie?
Przykłady:
Wiele razy widzę ten komentarz /* @escapeNotVerified */
w plikach szablonów Magento2.
Czy to ma szczególne znaczenie?
Czy ma to jakieś zastosowanie?
Przykłady:
Odpowiedzi:
Ten znacznik jest używany w testach statycznych. Wszelkie wyjście potencjalnie niebezpieczne muszą być oznakowane albo @escapeNotVerified
albo @noEscape
przejść testy, to ostatnie oznacza, że ten szczególny zwyczaj został sprawdzony i jest bezpieczny.
W przyszłych wersjach wszystkie wystąpienia @escapeNotVerified
będą weryfikowane i oznaczone albo za @noEscape
pomocą 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:
getTitleHtml
, również powinny wyświetlać kod ucieczki HTMLZnajduję to w devdocs Magento2
Test statyczny
Aby poprawić bezpieczeństwo przed wstrzyknięciami XSS, XssPhtmlTemplateTest.php
do 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