Noté la clase vendor/magento/framework/Escaper.php
que contiene algunos métodos de seguridad útiles utilizados dentro de las plantillas (principalmente). Algunos de ellos son bastante comunes ( escapeHtml()
), pero algunos de ellos son difíciles de encontrar.
- ¿Qué método y
escapeXssInUrl()
realmente hace? - En el caso del método
escapeJsQuote()
, ¿cuál es el lugar donde se pueden encontrar estas citas? ¿Solojs
en línea en las plantillas? - ¿Alguien tiene alguna explicación clara cuando se deben utilizar todos los métodos (ejemplos prácticos)?
- ¿Cuál es la diferencia entre
escapeUrl()
yescapeXssInUrl()
si el segundo nos otorga una mayor seguridad, por qué no usar siempre el segundo en lugar de escapar solo de caracteres html? escapeQuote()
¿debería usarse, por ejemplo, para hacer eco de alguna variable en una situación como esta<div value="<?php echo
[aquí?]$value?>"></div>
?
escapeUrl()
yescapeXssInUr()l
? Vale la pena notar queThe 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.
Hay una entrada útil en DevDocs sobre seguridad de plantillas: medidas de seguridad contra ataques XSS
Re
escapeXssInUrl
: La funciónescapeUrl
llamaescapeXssInUrl
internamente másescapeHtml
después. También Magento utilizaescapeUrl
internamente.Asegúrese de revisar las nuevas funciones de escape una vez que Magento 2.2. está disponible ya que vendrán nuevos:
Y también puede interesarle ver mi presentación sobre esto aquí: Manejo seguro de entradas y salidas - Conozca Magento Romania 2016
fuente
escapeXssInUrl()
, así que ¿debería usarescapeUrl()
insted? 'Reglas de validación de Eav Backedn': ¿supongo que solo se usan automáticamente y ya las estoy usando? ¿O debería implementarlos en lugares donde se agregan entradas?escapeUrl
queescapeXssInUrl
como se llama internamente: github.com/magento/magento2/blob/…