elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema cuando mysql_real_escape_string guarda las comillas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema cuando mysql_real_escape_string guarda las comillas  (Leído 6,911 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Problema cuando mysql_real_escape_string guarda las comillas
« en: 26 Enero 2012, 02:48 am »

El problema es que si tengo esto:

$texto='Que bonito es este "Mundo" tan maravilloso'.

site le paso el mysql_real_escape_string();

Lo que se guarda en la base de datos es:

Que bonito es este \"Mundo\" tan maravilloso



Está claro que luego puedo quitar las barras con stripslashes, no obstante necesito guardar en la base de datos el texto tal y como está (con las comillas y sin la barra).

¿Cual es la forma "más" segura para no perder seguridad?


En línea




jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #1 en: 26 Enero 2012, 03:02 am »

Que tan necesario es guardarlas? Podrías reemplazarla por un hash y luego reestablecerlas del mismo modo a la inversa no?


En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #2 en: 26 Enero 2012, 03:20 am »

Que tan necesario es guardarlas? Podrías reemplazarla por un hash y luego reestablecerlas del mismo modo a la inversa no?

Sí, la razón es que habría que modificar muuucho código.


Una cosa que pensé fue esto:

Código
  1. function limpia($texto){
  2. $texto=mysql_real_escape_string($texto);
  3. $texto=stripslashes($texto);
  4. return $texto;
  5. };

Pero en parte es tontería limpiar la variable ¿No?

¿Alguna solución?
En línea




jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #3 en: 26 Enero 2012, 07:48 am »

Quizás sea una brutalidad pero para ahorrar tiempo podrías tratar de quitar los \ con javascript, se supone que es para maquillar nada más o no? Igual lo más óptimo es darse el trabajo y hacerlo bien poniendo y quitando
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #4 en: 26 Enero 2012, 08:24 am »

http://dev.mysql.com/doc/refman/5.0/es/string-syntax.html

--->

Con mysql_real_escape_string(); puedes evitar SQL inyection...

Código
  1.  
  2. <?php
  3. // Connect
  4. $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
  5.    OR die(mysql_error());
  6.  
  7. // Query
  8. $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
  9.            mysql_real_escape_string($user),
  10.            mysql_real_escape_string($password));
  11.  
  12. // Show Query
  13. echo $query;
  14.  
  15. ?>
  16.  
  17.  

En pocas palabras tu problema lo solucionas con sprintf();

Dulces Lunas!¡.
« Última modificación: 26 Enero 2012, 09:09 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #5 en: 26 Enero 2012, 12:55 pm »

No entiendo muy bien para que usas el StrinfF.
En línea




[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #6 en: 26 Enero 2012, 20:38 pm »

No entiendo muy bien para que usas el StrinfF.

Seria lo mismo que hacer:

Código
  1. $query = "SELECT * FROM users WHERE user='" . mysql_real_escape_string($user) . "' AND password='" . mysql_real_escape_string($password) . "'";
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #7 en: 27 Enero 2012, 14:44 pm »

Eso que dices que te sucede es imposible, lo mas seguro es que tengas activado las magic quotes, intenta guardar una variable y no _GET para que pruebes. Las slashses las agrega para evitar inyección pero el motor sql las elimina cuando las guarda.

Intenta:
Código
  1. <?php
  2. $texto='Que bonito es este "Mundo" tan maravilloso';
  3. echo 'Se insertar&aacute;: <strong>'.htmlspecialchars($texto, ENT_QUOTES).'</strong>';
  4. mysql_query('insert into `textos` (`value`) values ("'.mysql_real_escape_string($texto).'")');
  5.  

Ahora a texto ponle $_GET['texto'] y verifica si te sale diferente.

Puedes también agregarle esto a tus scripts:
Código
  1. <?php
  2. ini_set('magic_quotes_gpc',     false);
  3. ini_set('magic_quotes_runtime', false);
  4. ini_set('allow_url_fopen',      false);
  5. ini_set('allow_url_include',    false);
  6. ini_set('register_globals',     false);
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #8 en: 27 Enero 2012, 16:11 pm »

Ahora me estoy cambiando a otro servidor, veré si en el nuevo me pasa y si me pasa ya veré lo que decis.

Gracias^^
En línea




peib0l
Wiki

Desconectado Desconectado

Mensajes: 3.493


freedom


Ver Perfil WWW
Re: Problema cuando mysql_real_escape_string guarda las comillas
« Respuesta #9 en: 27 Enero 2012, 19:05 pm »

no puedes hacer una función en la base de datos?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mysql_real_escape_string no es suficiente
Nivel Web
USUARIO_DE_SOFTWARE_LIBRE 1 13,657 Último mensaje 29 Agosto 2009, 19:37 pm
por WHK
Double Driver 4.1: Guarda los drivers de tu sistema y restauralos cuando quieras
Software
wolfbcn 0 2,270 Último mensaje 5 Agosto 2010, 20:54 pm
por wolfbcn
Funcionamiento de mysql_real_escape_string()
PHP
Gambinoh 5 10,994 Último mensaje 31 Diciembre 2010, 19:33 pm
por xassiz~
Problema con comillas en Geany
Programación C/C++
akibara 1 5,002 Último mensaje 24 Mayo 2011, 18:46 pm
por x64core
problema con comillas en servidor Linux
PHP
KateLibby 3 2,233 Último mensaje 4 Marzo 2019, 10:53 am
por KateLibby
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines