Saya melihat banyak kemunculan komentar ini /* @escapeNotVerified */
di file template untuk Magento2.
Apakah itu memiliki makna khusus?
Apakah ada gunanya untuk ini?
Contoh:
- https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml#L23
- https://github.com/magento/magento2/blob/2.1/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml#L10
Saya dapat melanjutkan untuk beberapa halaman di sini.
Jawaban:
Tag ini digunakan oleh tes statis. Setiap output yang berpotensi tidak aman harus ditandai dengan salah satu
@escapeNotVerified
atau@noEscape
untuk lulus tes, yang terakhir berarti bahwa penggunaan khusus ini telah diperiksa dan aman.Dalam rilis mendatang semua kejadian
@escapeNotVerified
akan diverifikasi dan ditandai dengan@noEscape
atau lolos dengan salah satu metode ini:\Magento\Framework\View\Element\AbstractBlock::escapeHtml
\Magento\Framework\View\Element\AbstractBlock::escapeUrl
\Magento\Framework\View\Element\AbstractBlock::escapeXssInUrl
\Magento\Framework\View\Element\AbstractBlock::escapeQuote
Perhatikan juga bahwa beberapa output dianggap aman dan tidak boleh ditandai dengan penjelasan seperti itu:
getTitleHtml
, juga diharapkan untuk menghasilkan HTML yang lolossumber
Saya menemukannya di devdocs of Magento2
Tes Statis
Untuk meningkatkan keamanan terhadap injeksi XSS, tes statis
XssPhtmlTemplateTest.php
ditambahkan ke dev \ test \ static \ testsuite \ Magento \ Test \ Php.Tes statis ini menemukan semua panggilan gema di templat-PHTML dan menentukan apakah itu benar-benar lolos atau tidak.
Ini mencakup kasus-kasus berikut:
/* @noEscape */
sebelum output. Output tidak membutuhkan pelarian. Tes berwarna hijau./* @escapeNotVerified */
sebelum output. Keluaran yang keluar tidak dicentang dan harus diverifikasi. Tes berwarna hijau.Baca Magento Docs di 2.0 atau 2.1
sumber