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 @escapeNotVerifiedoder 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 @noEscapemit 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::escapeQuoteBeachten 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 ausgebenIch finde es in devdocs von Magento2
Statischer Test
Um die Sicherheit gegen XSS-Injektionen zu verbessern, XssPhtmlTemplateTest.phpwird 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.