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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto]: Alternativa a una solución de escapar comillas simples y dobles
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto]: Alternativa a una solución de escapar comillas simples y dobles  (Leído 10,570 veces)
Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
[Resuelto]: Alternativa a una solución de escapar comillas simples y dobles
« en: 31 Julio 2020, 00:17 am »

Hola,

quería saber si era no se si buena práctica porque no creo que sea muy común, pero veo que puede resultar más fácil y la verdad no veo mucha diferencia... Tampoco quiero que por hacer algo fácil el "sistema" quede horrendo...

como en el post anterior, había dicho que cuando una cadena tiene "hola ' mi nombre es..." esa comilla simple puede dar problemas, y también al reves si fuera unas comillas dobles...

¿Habrá algún problema si decido transformar todo lo que se reciba de esta manera?

Código
  1. $x = str_replace("'", "’"); // cambió ' por ’
  2. $x = str_replace('"', '”'); // cambió " por ”
  3.  

No veo mucha diferencia hasta en estilo puede quedar un poquito mejor (creo)

¿Qué opinan?

EDIT: Me fijé que habría un problema si el usuario registra una contraseña como por ejemplo...

micontraseña'123

entonces su contraseña sería

micontraseña’123

pero voy a prohibir las contraseñas con comillas simples y dobles y ya...


« Última modificación: 4 Agosto 2020, 07:53 am por #!drvy » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #1 en: 31 Julio 2020, 00:46 am »

Dependerá del destino, por ejemplo en MiriadaX (una página de cursos gratuitos) hay cursos de programación PERO han tenido la fantástica idea de mostrar código fuente ya sea en sus PDFs o en Capturas de Pantalla o en la misma página, con esas problemáticas comillas, y pues hay muchas quejas de algunos usuarios que copian y pegan este código dando error al intentar ejecutarlos XD.

Si es solo para lectura como bien ya lo hace Word o Indesign que al momento que poner las comillas sencillas las convierte las comillas tipográficas, no debería haber problemas, "porque se ven mejor" para texto.

- También considera la codificación de caracteres html destino, normalmente para evitarse estos problemas siempre se codifican los caracteres no estandar (htmlentities lo hace perfectamente). Tampoco debería de haber mayor problema porque los navegadores web modernos usan por defecto UTF-8 y deberían de poder mostrar correctamente esos caracteres.


En línea

Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #2 en: 31 Julio 2020, 00:54 am »

Dependerá del destino, por ejemplo en MiriadaX (una página de cursos gratuitos) hay cursos de programación PERO han tenido la fantástica idea de mostrar código fuente ya sea en sus PDFs o en Capturas de Pantalla o en la misma página, con esas problemáticas comillas, y pues hay muchas quejas de algunos usuarios que copian y pegan este código dando error al intentar ejecutarlos XD.

Si es solo para lectura como bien ya lo hace Word o Indesign que al momento que poner las comillas sencillas las convierte las comillas tipográficas, no debería haber problemas, "porque se ven mejor" para texto.

- También considera la codificación de caracteres html destino, normalmente para evitarse estos problemas siempre se codifican los caracteres no estandar (htmlentities lo hace perfectamente). Tampoco debería de haber mayor problema porque los navegadores web modernos usan por defecto UTF-8 y deberían de poder mostrar correctamente esos caracteres.


jaja estoz MiriadaX

Gracias!!!
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #3 en: 31 Julio 2020, 01:50 am »

pero voy a prohibir las contraseñas con comillas simples y dobles y ya...

Por seguridad no se debe de restringir ningun tipo caracter en las contraseñas.

Ni se deben de guardar contraseñas en texto plano en las bases de datos.

Saludos
En línea

Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #4 en: 31 Julio 2020, 01:52 am »

Sí, igual existen millones de combinaciones posibles como contraseñas no creo que restringir las comillas simples y dobles haga alguna diferencia.

En lo de texto plano, ya limpio todo antes de ingresar aunque sea un 1 a la base de datos..

Gracias!


EDIT: Te había entendido mal, si con texto plano te referias a que no está hasheado.. si lo cifro
« Última modificación: 31 Julio 2020, 04:12 am por MiguelCanellas » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #5 en: 31 Julio 2020, 01:55 am »

Por qué no le añades a mano el caracter de escape cuando defines el string?

Si vas a meter input de usuario sin sanitizar, te hackean la web. Y esto no lo evitas con html_entities ni la función de turno.

Véase tu ejemplo:
Código
  1. $(selector).html('<p>ves aquella esquina? \' tu madre y tu hermana ahí trabajan!</p>');

Imagínate que me dejas registrarme en tu web y vas a poner mi nombre de usuario ahí:
Código
  1. $(selector).html('stringmanolo');

- Si escapas con remplace las comillas hago:
user: stringmanolo\'); alert(); \'
Y queda:
Código
  1. $(selector).html('stringmanolo\\'); alert(); \\'');

O hago:
user: \'+alert());//
Código
  1. $(selector).html( '\\' + alert() ); //');

Usa htmlpurifier.
https://github.com/ezyang/htmlpurifier


De todas formas si no sabes lo que pueden hacer en las headers, en php, en js, en html, en css, en jquery y demás... Poco vas a solucionar. Acabaras metiendo input sanitizado en el js y te harán inyección.

Deberías leerte libros de seguridad web.
« Última modificación: 31 Julio 2020, 01:58 am por @XSStringManolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #6 en: 31 Julio 2020, 02:42 am »

Probé tu código... no se si me equivoque con algo o si te olvidaste algo pero todo eso no me afecto en nada.

Código
  1.        <?php
  2. $string_1 = 'stringmanolo\'); alert(); \'';
  3. $string_2 = '\'+alert());//';
  4. //$string_x = [Función para limpiar el dato]
  5. ?>
  6.  
  7. <script type="text/javascript">
  8. $('body').html('<?php echo($string_2); ?>');
  9. </script>
  10.  
« Última modificación: 31 Julio 2020, 02:45 am por MiguelCanellas » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #7 en: 31 Julio 2020, 03:08 am »

Uno de los payloads no es válido, ya lo arreglé.

Código
  1. <html>
  2. <body>
  3. <script>
  4. var $body = {
  5.  html: function(string) {
  6.          document.body.innerHTML = string;
  7.        }
  8. };
  9.  
  10. $body.html('\\' + alert(1) ); //');
  11. $body.html('stringmanolo\\'); alert(2);//'
  12.  
  13. </script>
  14. </body>
  15. </html>
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #8 en: 31 Julio 2020, 03:28 am »

Uno de los payloads no es válido, ya lo arreglé.

Código
  1. <html>
  2. <body>
  3. <script>
  4. var $body = {
  5.  html: function(string) {
  6.          document.body.innerHTML = string;
  7.        }
  8. };
  9.  
  10. $body.html('\\' + alert(1) ); //');
  11. $body.html('stringmanolo\\'); alert(2);//'
  12.  
  13. </script>
  14. </body>
  15. </html>

Código
  1. Realmente no está haciendo nada, no se que pueda estar mal...
  2.  
  3. <?php
  4. $string_1 = "\\' + alert(1) ); //";
  5. $string_2 = "stringmanolo\\'); alert(2);//";
  6. // $string = Clearn($string, 'x');
  7. ?>
  8.  
  9. <script type="text/javascript">
  10. var $body = {
  11.    html: function(string)
  12.    {
  13.         document.body.innerHTML = string;
  14.     }
  15. };
  16.  
  17. $body.html('<?php echo($string_1); ?>');
  18. $body.html(<?php echo($string_2); ?>
  19. </script>
  20.  

De igual forma, cuando reemplacé las comillas simples y dobles se termino la joda, y cuando limpie toda la cadena también... hasta donde yo entiendo...

No ocurre nada anormal, y eso que pruebo el código sin limpiar nada entonces algo está fallando.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Alternativa a una solución de escapar comillas simples y dobles
« Respuesta #9 en: 31 Julio 2020, 03:42 am »

En lo de texto plano, ya limpio todo antes de ingresar aunque sea un 1 a la base de datos..

El punto es que no debería haber comillas en los hashes. Así que tu función no hace nada.
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines