Hay muchos archivos de plantilla como este views-view-fields--magazine--magazine.tpl.php
en mi sitio web. ¿Cómo y cuándo debo usar filter_xss () y check_plain () para mejorar la seguridad? por ejemplo este es el código:
<div>
<div class="bf-header bf-article-header"><?php print $fields['title']->content; ?></div>
<div class="bf-article-body"><?php print $fields['field_magazine_body']->content;?></div>
<div class="bf-article-image"><?php print $fields['field_magazine_image']->content;?></div>
</div>
<div class="separator article-view-separator"></div>
¿Cómo puedo aplicar esas funciones en él?
filter_xss()
cuando desee filtrar XSS de contenido potencialmente peligroso (es decir, contenido de un usuario no confiable), ycheck_plain()
cuando desee escapar de caracteres especiales HTML de una cadenaRespuestas:
Primero, lea sobre esto en la API de Drupal:
Por lo tanto,
check_plain()
codifica caracteres especiales que tienen un significado especial en HTML (como<
y&
) en entidades de texto sin formato (es decir,<
y&
respectivamente) que harán que estos se representen literalmente (no interpretados como HTML) cuando esa cadena se muestre como parte de una página con Marcado HTML. La funciónfilter_xss()
filtra una cadena HTML para evitar vulnerabilidades de cross-site-scripting (XSS). Hace cuatro cosas:Ambas funciones se utilizan para desinfectar los datos de los usuarios para asegurarse de que cualquier inyección del usuario se neutralice antes de que los datos se muestren en su sitio.
Nunca pasas la misma secuencia a través de ambos .
Si lo usa
check_plain()
, se supone que la cadena pasada a la función se usará como texto sin formato (no HTML). Entoncesfilter_xss()
no es necesario, yacheck_plain()
que siempre hará que la cadena sea texto plano.Si lo usa
filter_xss()
, se supone que la cadena que se pasa a la función es HTML y lacheck_plain()
estropeará.Cuando miro la plantilla que usa como ejemplo, me parece que los tres campos pasados
print()
provienen de contenido que ya está desinfectado y no necesita más saneamiento.Sin embargo, si crea su propio módulo que recopila la entrada del usuario sin pasarlo por un filtro de texto "seguro" como "HTML filtrado" o "Normal", debe utilizar estas funciones para fines de saneamiento.
fuente
plain text