Magento 2 @escapeNotVerified

65

Saya melihat banyak kemunculan komentar ini /* @escapeNotVerified */di file template untuk Magento2.
Apakah itu memiliki makna khusus?
Apakah ada gunanya untuk ini?

Contoh:

Marius
sumber
25
Hei ... Kenapa downvote? Saya tidak diizinkan bertanya?
Marius

Jawaban:

95

Tag ini digunakan oleh tes statis. Setiap output yang berpotensi tidak aman harus ditandai dengan salah satu @escapeNotVerifiedatau @noEscapeuntuk lulus tes, yang terakhir berarti bahwa penggunaan khusus ini telah diperiksa dan aman.

Dalam rilis mendatang semua kejadian @escapeNotVerifiedakan diverifikasi dan ditandai dengan @noEscapeatau 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:

  • Terlampir dalam tanda kutip tunggal
  • Terlampir dalam tanda kutip ganda tetapi tanpa variabel
  • Ketik casting ke bool, int
  • Metode panggilan yang berisi 'html' dalam nama mereka, seperti getTitleHtml, juga diharapkan untuk menghasilkan HTML yang lolos
Alex Paliarush
sumber
3
Greats answer @Alex
Amit Bera
Good Ans +1 @Alex :)
Rama Chandran M
Ini membantu +1
@Alex
4
Pada kecepatan saat ini, penggantian akan dilakukan sekitar 2026: D
Fabian Schmengler
26

Saya menemukannya di devdocs of Magento2

Tes Statis

Untuk meningkatkan keamanan terhadap injeksi XSS, tes statis XssPhtmlTemplateTest.phpditambahkan 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

Tagihan
sumber