Autor Tema: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?  (Leído 4830 veces)

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
Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?

Creando la función que substituia DELETE, INSERT INTO...
y
convirtiendo el mensaje en texto plano.

Con solo eso ya basta?
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


Comunidad PHPeros


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #1 en: 21 de Junio de 2007, 22:23:20 pm »
¿¿Mande??
No entiendo lo que quieres decir o hacer...
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #2 en: 21 de Junio de 2007, 22:32:53 pm »
¿¿Mande??
No entiendo lo que quieres decir o hacer...
Conseguir seguridad máxima en libros de visitas, foros, tagboards... etc todo lo que programemos no pueda ser vulnerable para nada ni scrips ni ningun tipo de hack ni nada...
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


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #3 en: 21 de Junio de 2007, 22:40:10 pm »
Jajajaja hijo mio...
Todo es vulnerable, por ejemplo, puedes conseguir la mejor caja de seguridad del mundo, pero te aseguro que con tiempo, paciencia e infraestructura podrían robarte el contenido.

Lo mismo pasa con PHP o cualquier lenguaje. Eso sí, siempre puedes usar truquitos y cosas para estar mas seguro pero no hay nada infalible...

Básicamente en un codigo que el usuario envia datos al servidor, vease foros, chats, libros de visitas, etc..., hay que proteger los datos de la variable superglobal $_POST. Si un usuario intenta hacer algo lo hará mediante codigos enviados por los formularios, es decir, a traves de $_POST.

¿Como proteger esta variable?

Puedes deshabilitar html, evitar las comillas, etc... Lo mejor es mirar los codigos trabajados, vease un foro SMF, PHP-Nuke, phpBB, vBulletin, etc... Pero siempre habrá alguna vulnerabilidad ;)
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #4 en: 21 de Junio de 2007, 22:45:40 pm »
Pero haver... ya se que no hay nada 100% seguro y por eso existen los Backups

Pero yo quiero ponerselo difícil a los que intenten hackear de alguna manera y si soluciono quitarme de encima los errores más basicos seguro que al ver que es más chungo se iran a otro lado aun más facil.

Y bueno solo queria preguntar pues eso cosas tipo lo de crear la función limpiadora de variables, si es numerica, convertir en texto plano... cosas así para tener la Web más segura que si la dejo así tal y como lo acabo sin retocar.
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


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #5 en: 21 de Junio de 2007, 22:57:25 pm »
Yo no tengo creadas funciones para eso, yo las voy creando al hacer las webs dependiendo del caso xD
De todas formas, tengo una funcion que es muy util para que no te metan codigos especiales como javascript...

Es muy sencilla de aplicar aunque quizás no la entendais.

function etiquetas_deshabilitadas(){ // Proteccion de Etiquetas HTML
	
$tags = array("onmouseover","script","object","iframe","applet","meta","style","form");
	
foreach (
$_GET as $value) {
	
	
$value strtolower($value);
	
	
str_replace("%3c""<"$value);
	
	
str_replace("%3e"">"$value);
	
	
foreach (
$tags as $valor) {
	
	
	
if (
eregi("<[^>]*".$valor."*\"?[^>]*>"$value)) {
	
	
	
	
exit (
"Etiquetas HTML deshabilitadas por seguridad");
	
	
	
}
	
	
}
	
}
	
foreach (
$_POST as $value) {
	
	
$value strtolower($value);
	
	
str_replace("%3c""<"$value);
	
	
str_replace("%3e"">"$value);
	
	
foreach (
$tags as $valor) {
	
	
	
if (
eregi("<[^>]*".$valor."*\"?[^>]*>"$value)) {
	
	
	
	
exit (
"Etiquetas HTML deshabilitadas por seguridad");
	
	
	
}
	
	
}
	
}
}


Si creas una libreria de funciones e incluyes las funciones mediante include(), que es lo mas logico. Para aplicarlo solo tendras que hacer lo siguiente:

<?PHP
include("funciones.php"); // Libreria de funciones con la funcion anterior
etiquetas_deshabilitadas();

//TU WEB
?>
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #6 en: 21 de Junio de 2007, 23:17:05 pm »
Uoooh esto me ira de perlas muchas gracias naveda ;)

Oye y si meto hay DELETE, INSERT INTO, UPLOAD... tambien me permitira que no metan nada de codigos para toquetear la base de datos no?

KARMA +
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


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #7 en: 21 de Junio de 2007, 23:22:53 pm »
No esta creada para esa funcion...
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #8 en: 21 de Junio de 2007, 23:27:17 pm »
Aps... vale...

Pero si pusiera tambien esa función tambien, tendria menos riesgo no? o se sabe algo más? sabes alguna función más? lo digo por mirarlo en la bilbia :P
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


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #9 en: 22 de Junio de 2007, 00:01:22 am »
no existe la etiqueta <delete> xD ese codigo comprueba y detecta que no haya etiquetas html que permitan producir errores...
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #10 en: 22 de Junio de 2007, 01:00:47 am »
no existe la etiqueta <delete> xD ese codigo comprueba y detecta que no haya etiquetas html que permitan producir errores...
no haver haver... eso ya o se...

Pero alguien hizo algo para limpiar los datos que entran por formulario para filtrarlos y que cuando se suba a la base de datos o algo pues que no se pueda eliminar datos de la base de datos ni nada...

No se si me entiendes xDDD
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


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #11 en: 22 de Junio de 2007, 01:15:50 am »
Txapu creo que es el "alguien" ;)
Por favor, leete las Normas


Desconectado Revancha

  • PHPero Avanzado
  • ****
  • Mensajes: 375
  • Karma: 22
  • Sexo: Masculino
    • Ver Perfil
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #12 en: 23 de Junio de 2007, 22:58:58 pm »
Puedes crear una funcion


function limpiar($texto) {
$texto htmlspecialchars($texto);
$texto strip_tags($texto);
$texto str_replace("<","&lt;"$texto);
$texto str_replace(">","&gt;"$texto);
return 
$texto;
}

Algo asi podria ser una simple funcion para limpiar algun texto.

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #13 en: 24 de Junio de 2007, 11:17:59 am »
Eso lo que hace es eliminar las etiquetas HTML, o mas bien, pasarlas a texto plano, es decir, que no se interpretan como html sino que se imprimen como texto plano.

Ejemplo:
Código: [Seleccionar]
<p align="center">Texto Centrado</p>Sin la funcion que ha dicho kekoman se vería así:
Texto Centrado

Pero con la funcion se vería así:
<p align="center">Texto Centrado</p>
Por favor, leete las Normas


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: Como conseguir que nuestros foros, libros de visitas etc no sean vulnerables?
« Respuesta #14 en: 24 de Junio de 2007, 13:10:16 pm »
Vamos que si intentanhacer algo raro se notara xD
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