Saya perhatikan kelas vendor/magento/framework/Escaper.php
yang berisi beberapa metode keamanan berguna yang digunakan di dalam (terutama) templat. Beberapa dari mereka cukup umum ( escapeHtml()
), tetapi beberapa dari mereka sulit ditemui.
- Metode apa dan
escapeXssInUrl()
sebenarnya? - Dalam hal metode
escapeJsQuote()
- di mana tempat kutipan ini dapat ditemukan? Hanya inlinejs
in templates? - Adakah yang memiliki penjelasan yang jelas kapan semua metode harus digunakan (contoh praktis)?
- Apa perbedaan antara
escapeUrl()
danescapeXssInUrl()
dan jika yang kedua memberi kita keamanan yang lebih baik, mengapa tidak selalu menggunakan yang kedua alih-alih melarikan diri hanya karakter html? escapeQuote()
harus digunakan misalnya untuk menggemakan beberapa variabel dalam situasi seperti ini<div value="<?php echo
[di sini?]$value?>"></div>
?
escapeUrl()
danescapeXssInUr()l
? Perlu diperhatikan bahwaThe upcoming release of Magento 2.2 will deprecate these functions. Please check back on this page after the 2.2 release for updated documentation on new escape functions.
Ada entri yang bermanfaat di DevDocs tentang keamanan template: Langkah-langkah keamanan terhadap serangan XSS
Re
escapeXssInUrl
: FungsiescapeUrl
panggilanescapeXssInUrl
internal plusescapeHtml
sesudahnya. Juga Magento menggunakanescapeUrl
internal.Pastikan untuk memeriksa fungsi pelarian baru setelah Magento 2.2. keluar karena akan ada yang baru datang:
Dan Anda mungkin juga tertarik untuk melihat presentasi saya tentang ini di sini: Penanganan input dan output yang aman - Meet Magento Romania 2016
sumber
escapeXssInUrl()
- jadi haruskah saya menggunakanescapeUrl()
insted? 'Aturan validasi Eav Backedn' - Saya kira mereka hanya menggunakan secara otomatis dan saya sudah menggunakannya? Atau haruskah menerapkannya di tempat input ditambahkan?escapeUrl
daripadaescapeXssInUrl
karena ini disebut internal: github.com/magento/magento2/blob/…