Autor Tema: [Ayuda] Sistema de Noticia  (Leído 1204 veces)

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
[Ayuda] Sistema de Noticia
« en: 19 de Septiembre de 2007, 01:41:52 am »
Hola...

Bueno estoy Creando un Sistema de Noticias .. Ya lo tengo listo y todo pero el problemas es que es Facil de Hackear porque acepta codigos HTML .. Me dijieron que use la funcion de htmlentities() .. Pero nose como adaptarla a mi Sistema de Noticias ..  ???

Saludos

Comunidad PHPeros

[Ayuda] Sistema de Noticia
« en: 19 de Septiembre de 2007, 01:41:52 am »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #1 en: 19 de Septiembre de 2007, 08:29:03 am »
Cuando muestres los titulos de la noticia y el texto de la noticia, antess de mostrarla con echo, o lo que uses, pasala por htmlentities, ejemplo.

echo htmlentities($texto);
echo 
htmlentities($titulo);


Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [Ayuda] Sistema de Noticia
« Respuesta #2 en: 19 de Septiembre de 2007, 17:55:08 pm »
Yo recomiendo que hagais un filtro en el que englobeis todo, BBCode, Emoticonos, Seguridad para el HTML, XSS, etc...
Por favor, leete las Normas


Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #3 en: 19 de Septiembre de 2007, 21:39:00 pm »
Hola..

Utilizaré este codigo:

<?php
  
function clear($texto){
	
$texto trim($texto); // Eliminamos espacios en blanco o caracteres al principio y final del post
	
$texto htmlspecialchars($texto); // funciona casi igual que htmlentities
	
$texto str_replace("INSERT","IN-SER-T",$texto);  // Remplazamos palabras que podrian ser usadas para alterar la BD
	
$texto str_re place("DELETE","DE-LE-TE",$texto);
	
$texto str_replace("TRUNCATE","TRUN-CA-TE",$texto);
	
$texto str_replace("SELECT","SE-LEC-T",$texto);
	
$texto str_replace("ALTER","AL-TER",$texto);
	
return 
$texto;
	
}
?>


Pero tengo un problema en la funcion .. Osea en esto

Código: [Seleccionar]
function clear($texto){
Tengo que modificar la variable $texto y poner la variable que quiero limpiar .. Pero utilizo 2 variables .. La del Titulo y la del contenido .. Como hago para poner 2 variables en esa funcion ??

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: [Ayuda] Sistema de Noticia
« Respuesta #4 en: 20 de Septiembre de 2007, 10:31:25 am »
function clear($titulo,$texto){

Y tambien debes modificar la funció para que fufe ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #5 en: 20 de Septiembre de 2007, 19:33:40 pm »
Hola...

Ok pero y en las demas variables como ago ?? Osea tengo que poner mas variables ??:

<?php
  
function clear($texto,$titulo){
	
$texto trim($texto); // Eliminamos espacios en blanco o caracteres al principio y final del post
	
$texto htmlspecialchars($texto); // funciona casi igual que htmlentities
	
$texto str_replace("INSERT","IN-SER-T",$texto);  // Remplazamos palabras que podrian ser usadas para alterar la BD
	
$texto str_re place("DELETE","DE-LE-TE",$texto);
	
$texto str_replace("TRUNCATE","TRUN-CA-TE",$texto);
	
$texto str_replace("SELECT","SE-LEC-T",$texto);
	
$texto str_replace("ALTER","AL-TER",$texto);
                
$titulo trim($titulo); // Eliminamos espacios en blanco o caracteres al principio y final del post
	
$titulo htmlspecialchars($titulo); // funciona casi igual que htmlentities
	
$titulo str_replace("INSERT","IN-SER-T",$titulo);  // Remplazamos palabras que podrian ser usadas para alterar la BD
	
$titulo str_re place("DELETE","DE-LE-TE",$titulo);
	
$titulo str_replace("TRUNCATE","TRUN-CA-TE",$titulo);
	
$titulo str_replace("SELECT","SE-LEC-T",$titulo);
	
$titulo str_replace("ALTER","AL-TER",$titulo);
	
return 
$texto,$titulo;
	
}
?>


O como sería ??

Otra duda .. Donde coloco el code ?? En el archivo del Formulario ??

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #6 en: 20 de Septiembre de 2007, 20:02:15 pm »
Haber tienes un pequeño lio...

Una funcion adapta la variable al texto entre sus parentesis, por ejemplo esta funcion:

 
<?php
function clear($texto){
$texto trim($texto); // Eliminamos espacios en blanco o caracteres al principio y final del post
$texto htmlspecialchars($texto); // funciona casi igual que htmlentities
$texto str_replace("INSERT","IN-SER-T",$texto);  // Remplazamos palabras que podrian ser usadas para alterar la BD
$texto str_re place("DELETE","DE-LE-TE",$texto);
$texto str_replace("TRUNCATE","TRUN-CA-TE",$texto);
$texto str_replace("SELECT","SE-LEC-T",$texto);
$texto str_replace("ALTER","AL-TER",$texto);
return 
$texto;
}
?>


Si con esa funcion haces esto:
 echo clear("Hola me llamo Carlos y...."); 

En la funcion, $texto sera ahora "Hola me llamo Carlos y...". Lo que te quiero decir es que lo que pongas entre los parentesis sera lo que incluya la variable que hay entre los parentesis de la funcion

Aunque creo que no me he explicado muy bien, espero que lo entiendas

Un saludo
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #7 en: 20 de Septiembre de 2007, 22:25:06 pm »
Hola...

Claro pero no es solo 1 variable .. Son 2 .. Osea tengo que modificar todo y como lo ago ??

Saludos

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #8 en: 20 de Septiembre de 2007, 22:27:51 pm »
No hay que modificar nada.
Simplemente haces

echo clear($texto);
echo 
clear($titulo);


Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #9 en: 20 de Septiembre de 2007, 23:08:30 pm »
Hola...

Entonces el code quedaría asi o hay algun error ??:

<?php
function clear($texto){
$texto trim($texto); // Eliminamos espacios en blanco o caracteres al principio y final del post
$texto htmlspecialchars($texto); // funciona casi igual que htmlentities
$texto str_replace("INSERT","IN-SER-T",$texto);  // Remplazamos palabras que podrian ser usadas para alterar la BD
$texto str_re place("DELETE","DE-LE-TE",$texto);
$texto str_replace("TRUNCATE","TRUN-CA-TE",$texto);
$texto str_replace("SELECT","SE-LEC-T",$texto);
$texto str_replace("ALTER","AL-TER",$texto);
return 
$texto;
}
echo 
clear($texto);
echo 
clear($titulo);
?>


O como ??

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #10 en: 21 de Septiembre de 2007, 15:15:10 pm »
Asi deberia estar bien, siempre y cuando la variable $titulo contenga el titulo y la variable $texto contenga el texto!

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #11 en: 21 de Septiembre de 2007, 15:46:30 pm »
Hola...

Muchas Gracias a todos .. Creo que el Tema está resuelto y lo tendrían que cerrar ..

Saludos

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: [Ayuda] Sistema de Noticia
« Respuesta #12 en: 21 de Septiembre de 2007, 16:05:04 pm »
Pues como dice nuestro querido amigo g2k,,

OÍDO COCINA!!

ajajaj
Sin Firma me haces una? :P