Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Kizar en 17 Abril 2007, 00:22 am



Título: Impedir scripts
Publicado por: Kizar en 17 Abril 2007, 00:22 am
Bueno, dentro de un sistema que estoy haciendo he puesto para que se puedan poner mensajes, como les puede poner todo el mundo me gustaria que no se puediera escribir codigo de ningun tipo, solo texto, que no se pueda ni JS, ni html, ni ningun otro lenguaje que el navegador pueda interpretar...
He buscado pero no encontre nada en este foro, no se si busque con las palabras adecuadas...


Título: Re: Impedir scripts
Publicado por: Thaorius en 17 Abril 2007, 05:58 am
Código:
$resultado = htmlentities(htmlspecialchars($entrada));

Saludos


Título: Re: Impedir scripts
Publicado por: Kizar en 17 Abril 2007, 14:54 pm
Funciona bien pero solo hay que usar una de las dos funciones.
Habria alguna forma de que todo el codigo html se quitara?


Título: Re: Impedir scripts
Publicado por: alone-in-the-chat en 17 Abril 2007, 18:00 pm
strip_tags


Título: Re: Impedir scripts
Publicado por: Ertai en 17 Abril 2007, 22:24 pm
Usa la que te comenta alone, es la mejor


Título: Re: Impedir scripts
Publicado por: SERBice en 30 Abril 2007, 21:44 pm
http://ar.php.net/manual/es/function.strip-tags.php

http://ar.php.net/manual/es/function.htmlentities.php
http://ar.php.net/manual/es/function.htmlspecialchars.php

Usa la que te comenta alone, es la mejor

yo creo qeu si lees un poco el manual de PHP verás que strip_tags no es mejor, además si solo quiere DEJAR SIN EFECTO los tags HTML, per si mostrarlos en el caso de qe sea algún tipo de foro strip_tags no le servirá


Título: Re: Impedir scripts
Publicado por: alone-in-the-chat en 1 Mayo 2007, 00:10 am
y que recomiendas??  :D

o pusiste el post solo para decir que no??



Título: Re: Impedir scripts
Publicado por: SERBice en 1 Mayo 2007, 14:14 pm
no pued decirle "usa esto" o "usa aquello", como recomendacion le puedo decir que evalue que es lo que necesita. Si necesita mostrar el codigo, pero que no actue como tal qe use

http://ar.php.net/manual/es/function.htmlentities.php

y/o

http://ar.php.net/manual/es/function.htmlspecialchars.php

en cambio, si solo quiere suprimir el codigo, y esta segudo de que el mismo esta bien formado que use

http://ar.php.net/manual/es/function.strip-tags.php

aunqeu hay que tener en cuenta la advertencia de php.net al usar strip_tags:

Citar

Aviso
La función no valida el código HTML pasado, asi que puede suceder que si existen etiquetas HTML mal construidas o no cerradas, el resultado puede presentar texto y datos eliminados.
 


Citar
Aviso
Debe tenerse en cuenta que la funció no modifica los atributos de las etiquetas que se permiten mediante el parámetro etiquetas_permitidas, por lo que un usuario con malas intenciones podrí incluir atributos como style y onmouseover cuando envía información a sitios como un foro de discusión.
 


Título: Re: Impedir scripts
Publicado por: Ertai en 1 Mayo 2007, 16:57 pm
Si lees bien el primer post, verás que se pide la eliminación de TODAS las etiquetas. Solamente texto.


Título: Re: Impedir scripts
Publicado por: SERBice en 1 Mayo 2007, 19:24 pm
bueno, si nos ponemos en rompebolas y lebuscamos la quinta pata al gato puedo decirte que el pide "que no se peuda escribir codigo", y con strip-tags y las otras funciones lo que se ahce es quitar o "no interpretar" el codigo, pero d ningun modo impide que el miso sea ingresado. para impedir la escritura en tiempo real habria que usar JS y hacer una buena rutina que compruebe si se esta escribiendo codigo.....

en fni, como ya dije, si nos ponemos e detallistas y rompe bolas ninguna de las funciones de php serviria, porque segun KiZaR el quiere "que no se puediera escribir codigo de ningun tipo, solo texto"-

Ertai, no molestes cn posts que no aportan nada, no quieras tener la razón "porque si", KiZaR usará la funcion que mas le convenga. No hay necesidad de desacreditar mi post con rebusques complicados. y por fvor, no repliques mi respuesta, oprque este hilo no es un debate, estamos apra ayudarnos entre todos, yo ya he aoprtado mi granito de arena, tu el tuyo, ya esta... no hace falta seguir agrandando este hilo con debates de "que quiso o no decir".

PD: Vuelvoa  recalcar que strip_tags es "menos segura" en cuato a su funcionamiento ya que puede fallar si la etiqueta no fue cerrada o si es uan etiqueta rara o no cnovencional, tal como lo dice en php.net.


Título: Re: Impedir scripts
Publicado por: Ertai en 1 Mayo 2007, 23:24 pm
Aprende a leer antes de hablar chico.

strip_tags es una función segura, que borra todo el contenido que haya entre los caracteres de abrir (<) y cerrar (>) los tags en HTML.

Lo que Kizar quería es:

Citar
Funciona bien pero solo hay que usar una de las dos funciones.
Habria alguna forma de que todo el codigo html se quitara?

Despues de probar las funciones que le sugería Martin:

Código:
$resultado = htmlentities(htmlspecialchars($entrada));

Saludos

Si responde que no quiere eso, y le sugerimos strip_tags, para que has de hablar y sugerirle otra vez las tres funciones cuando hay dos que ya las ha probado y no es lo que quería?

No malinterpretes las páginas que lees si no las entiendes.

Modera tu lenguaje e intenta escribir correctamente por favor.

Gracias.