Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

369
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!