Foros del Web » Programando para Internet » PHP »

htmlentities php

Estas en el tema de htmlentities php en el foro de PHP en Foros del Web. Hola, Estoy guardando datos en la base de datos y ciertos caracteres como la ñ me los inserta de la siguiente manera. año -->año creo ...
  #1 (permalink)  
Antiguo 11/01/2013, 12:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
htmlentities php

Hola,

Estoy guardando datos en la base de datos y ciertos caracteres como la ñ me los inserta de la siguiente manera.
año -->año

creo que es por la función htmlentities de php.
Cuando visualizo el contenido en la web se ve correctamente. Es correcto guardar la información así???

Un saludo
  #2 (permalink)  
Antiguo 11/01/2013, 12:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: htmlentities php

El término "correcto" es relativo, si te funciona y no tienes problema con ello entonces es correcto para ti, y eso es completamente válido.

Pero puede que para otros conceptos simplemente no funcione, si yo quiero guardar HTML no lo escaparía usando entidades.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/01/2013, 14:17
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: htmlentities php

A mi parecer deberías poder insertar la Ññ en la base de datos. dependiendo de la base de datos puede ser que ésta no soporte los caracteres debes verificar eso.

En Mysql / Oracle / Postgres

$dato=htmlentities($tu_informacion_caracteres_espe ciales);
Pero esto guarda todo tipo de caracteres provenientes de html

además para ciertos caracteres en postgres debes usar también

$dato =pg_escape_string($tu_informacion_caracteres_espec iales);


Saludos
  #4 (permalink)  
Antiguo 11/01/2013, 16:22
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: htmlentities php

Les comento,

Utlizo mysql y la funcion htmlentities es utilizada en todos los datos que se van a guardar en la base de datos para prevenir los ataques xss.


1. lo que me pasa es por utilizar htmlentities ?? o es problema de la codificacion web??
  #5 (permalink)  
Antiguo 11/01/2013, 21:09
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: htmlentities php

Depende de lo que vayas a hacer con la base de datos...Pero, desde luego, si vas a buscar en ella, con condiciones sobre columnas que contienen datos con entidades html...

Aparte, para lo que lo pretendes usar, no necesitas que los datos estén escapeados en tu base de datos.Necesitan estar escapeados cuando los muestres en la pagina web.
  #6 (permalink)  
Antiguo 12/01/2013, 07:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: htmlentities php

Cita:
Iniciado por dashtrash Ver Mensaje
Depende de lo que vayas a hacer con la base de datos...Pero, desde luego, si vas a buscar en ella, con condiciones sobre columnas que contienen datos con entidades html...

Aparte, para lo que lo pretendes usar, no necesitas que los datos estén escapeados en tu base de datos.Necesitan estar escapeados cuando los muestres en la pagina web.
No entiendo, por lo que leí siempre que se guarden datos en la base de datos se tiene que usar la función htmlentities para prevenir los ataques xss. Entonces, como hago para poder insertar los caracteres bien codificados??
  #7 (permalink)  
Antiguo 12/01/2013, 10:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: htmlentities php

Cita:
Iniciado por Blashak Ver Mensaje
No entiendo, por lo que leí siempre que se guarden datos en la base de datos se tiene que usar la función htmlentities para prevenir los ataques xss. Entonces, como hago para poder insertar los caracteres bien codificados??
Los ataques XSS sólo afectan a los navegadores.

Por eso debes escapar al imprimir como te han dicho, o mejor aún usar algún filtro de XSS para no tener que hacer todo eso.

Para insertar a la BD hazlo como siempre, simplemente no uses dicha función.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 12/01/2013, 13:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: htmlentities php

Cita:
Iniciado por pateketrueke Ver Mensaje
Los ataques XSS sólo afectan a los navegadores.

Por eso debes escapar al imprimir como te han dicho, o mejor aún usar algún filtro de XSS para no tener que hacer todo eso.

Para insertar a la BD hazlo como siempre, simplemente no uses dicha función.
vale, entonces entiendo que en los datos que tenga que printar por pantalla tengo que utilizar la funcion htmlentities pero si no la utilizo al guardar se pueden guardar datos como <script... esta bien eso??
  #9 (permalink)  
Antiguo 12/01/2013, 13:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: htmlentities php

Un <script> en la base de datos no hace daño, sólo en tu navegador si no lo escapas apropiadamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 13/01/2013, 11:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: htmlentities php

Cita:
Iniciado por pateketrueke Ver Mensaje
Un <script> en la base de datos no hace daño, sólo en tu navegador si no lo escapas apropiadamente.
Vale entonces al guardar los datos basta con validar los campos y usar la función mysqli_real_escape_string??

Y la función htmlentities la utilizare en el array que me devuelva al hacer una consulta de la base de datos.

es correcto??

Un saludo
  #11 (permalink)  
Antiguo 13/01/2013, 19:40
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: htmlentities php

Claro, así es, como te dijeron arriba simplemente usas htmlentities cuando muestres la información en el navegador, porque un <script> en tu BD no hace nada, pero en el cliente si.
  #12 (permalink)  
Antiguo 15/01/2013, 05:51
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: htmlentities php

Ok, gracias.

Etiquetas: html, htmlentities
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.