Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cómo saber si se ha pasado una cadena a través de htmlentities en PHP? ¿Y necesita html_entity_decode?

Guardamos datos en nuestra base de datos después de pasarlos a través del método htmlentities para evitar ataques de inyección.

Y mientras lo usamos, hacemos html_entity_decode para recuperar el valor original. En algunos casos, en nuestro código, las htmlentities se realizan 2 o 3 veces en la misma porción de datos debido a nuestras técnicas de guardado (difícil de explicar). Básicamente, queremos evitar codificar las mismas cadenas varias veces.

¿Existe una buena manera confiable de detectar si una cadena ya se pasó a través del método htmlentities ?

Supongo que una forma es buscar cosas como " en la cadena codificada, pero ¿algo más confiable? ¿Algún método integrado que me diga si una cadena está codificada o no?

Estamos usando Laravel, ¿tal vez un método auxiliar allí que podría ayudarnos?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Este es fundamentalmente el enfoque incorrecto de la OMI. Almacene los datos sin procesar, tal como vienen. Mientras esté en la base de datos no puede hacerte ningún daño.

Páselo a través htmlentities solo cuando esté a punto de ponerlo en un documento HTML, porque ese es el único contexto en el que podría ser peligroso.

Eso ahorrará toda la codificación y decodificación: simplemente codifíquelo a pedido según sea necesario.

over 4 years ago · Santiago Trujillo Denunciar

0

Como lo mencionó ADyson, está manejando los datos incorrectamente en todo su sistema.

El motor de plantillas de Laravel "Blade" enviará automáticamente sus variables a través de htmlspecialchars() para evitar ataques XSS.

De la documentación :

Las declaraciones Blade {{ }} se envían automáticamente a través de la función htmlspecialchars de PHP para evitar ataques XSS.

Esto protegerá su sitio de posibles ataques XSS, sin necesidad de codificar/decodificar sus datos mientras ejecuta consultas INSERT / SELECT en su base de datos.

Siempre que esté utilizando DB Builder / Eloquent incorporado de Laravel, sus consultas SQL también están protegidas automáticamente :

El generador de consultas de Laravel utiliza el enlace de parámetros PDO para proteger su aplicación contra ataques de inyección SQL. No es necesario limpiar las cadenas que se pasan como enlaces.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda