Ich sehe viele Vorkommen dieses Kommentars /* @escapeNotVerified */
in den Vorlagendateien für Magento2.
Hat es eine besondere Bedeutung?
Gibt es eine Verwendung dafür?
Beispiele:
Ich sehe viele Vorkommen dieses Kommentars /* @escapeNotVerified */
in den Vorlagendateien für Magento2.
Hat es eine besondere Bedeutung?
Gibt es eine Verwendung dafür?
Beispiele:
Antworten:
Dieses Tag wird von statischen Tests verwendet. Jede potenziell unsichere Ausgabe muss entweder mit
@escapeNotVerified
oder gekennzeichnet werden@noEscape
, um Tests zu bestehen. Letzteres bedeutet, dass diese bestimmte Verwendung überprüft wurde und sicher ist.In zukünftigen Versionen werden alle Vorkommen von
@escapeNotVerified
überprüft und entweder@noEscape
mit einer der folgenden Methoden markiert oder mit einem Escapezeichen versehen:\Magento\Framework\View\Element\AbstractBlock::escapeHtml
\Magento\Framework\View\Element\AbstractBlock::escapeUrl
\Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl
\Magento\Framework\View\Element\AbstractBlock::escapeQuote
Beachten Sie auch, dass einige Ausgaben als sicher gelten und nicht mit solchen Anmerkungen versehen werden sollten:
getTitleHtml
, wird ebenfalls erwartet, dass sie mit Escapezeichen versehenes HTML ausgebenquelle
Ich finde es in devdocs von Magento2
Statischer Test
Um die Sicherheit gegen XSS-Injektionen zu verbessern,
XssPhtmlTemplateTest.php
wird dev \ tests \ static \ testsuite \ Magento \ Test \ Php ein statischer Test hinzugefügt.Dieser statische Test findet alle Echoaufrufe in PHTML-Templates und stellt fest, ob er ordnungsgemäß maskiert ist oder nicht.
Es deckt folgende Fälle ab:
/* @noEscape */
vor der Ausgabe. Die Ausgabe erfordert kein Escapezeichen. Test ist grün./* @escapeNotVerified */
vor der Ausgabe. Die Ausgabe-Escape-Funktion wird nicht überprüft und sollte überprüft werden. Test ist grün.Lesen Sie die Magento-Dokumentation unter 2.0 oder 2.1
quelle