Foros del Web » Programando para Internet » PHP »

como podria mejorar la seguridad en este codigo

Estas en el tema de como podria mejorar la seguridad en este codigo en el foro de PHP en Foros del Web. el titulo lo dice todo ocupo de su ayuda... soy novato en esto de php y apenas se lo basico se poco de seguridad.. queria ...
  #1 (permalink)  
Antiguo 03/05/2011, 00:33
 
Fecha de Ingreso: abril-2011
Ubicación: Los Mochis, Sinaloa, Mexico
Mensajes: 25
Antigüedad: 13 años
Puntos: 1
como podria mejorar la seguridad en este codigo

el titulo lo dice todo ocupo de su ayuda... soy novato en esto de php
y apenas se lo basico se poco de seguridad.. queria saber como mejorar la seguridad
en este codigo:

Código PHP:
<?php
$pagina 
$_GET["pagina"];
  if(
$pagina == inicio)
  {
 echo 
" Pagina inicial";
  }
  if(
$pagina == historia)
  {
 echo 
" Historia de Aconchi";
  }
   if(
$pagina == poblacion)
  {
 echo 
" Poblacion de Aconchi";
  }
?>
  #2 (permalink)  
Antiguo 03/05/2011, 00:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: como podria mejorar la seguridad en este codigo

Ese codigo no tiene huecos de seguridad ya que no se hacen grabaciones a bases de datos ni nada similar.

Debes tener cuidado es cuando se graba en la base de datos; hay si tienes que usar la función mysql_real_escape_string sobre el dato que vas a guardar para evitar inyecciones SQL, ejemplo:

Código PHP:
Ver original
  1. $nombre = $_GET["nombre"];
  2. $nombre = mysql_real_escape_string($nombre);

Igualmente cuando vayas a mostrar (mas no guardar) información desde la base de datos para que no puedan inyectar javascript malicioso en tu pagina debes hacer esto:

Código PHP:
Ver original
  1. echo htmlspecialchars($nombre);

Hay muchas otras amenazas pero esta son las mas populares y las que no puede dejar pasar por alto. Igualmente siempre es hacer cada tanto copias de seguridad de los archivos y bases de datos que utiliza,

Última edición por InKarC; 03/05/2011 a las 00:44
  #3 (permalink)  
Antiguo 03/05/2011, 01:25
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: como podria mejorar la seguridad en este codigo

Cita:
Iniciado por InKarC Ver Mensaje
Ese codigo no tiene huecos de seguridad ya que no se hacen grabaciones a bases de datos ni nada similar.

Debes tener cuidado es cuando se graba en la base de datos; hay si tienes que usar la función mysql_real_escape_string sobre el dato que vas a guardar para evitar inyecciones SQL, ejemplo:

Código PHP:
Ver original
  1. $nombre = $_GET["nombre"];
  2. $nombre = mysql_real_escape_string($nombre);

Igualmente cuando vayas a mostrar (mas no guardar) información desde la base de datos para que no puedan inyectar javascript malicioso en tu pagina debes hacer esto:

Código PHP:
Ver original
  1. echo htmlspecialchars($nombre);

Hay muchas otras amenazas pero esta son las mas populares y las que no puede dejar pasar por alto. Igualmente siempre es hacer cada tanto copias de seguridad de los archivos y bases de datos que utiliza,
Una pregunta al respecto, cuando haces un mysql_real_escape_string, el resultado lo guardás en una variable y luego hacés la query ??


En cuanto a htmlspecialchars no muestra los caracteres "alterados" ??

Tendré que probarlo :)

Gracias !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #4 (permalink)  
Antiguo 03/05/2011, 01:41
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: como podria mejorar la seguridad en este codigo

Cita:
Una pregunta al respecto, cuando haces un mysql_real_escape_string, el resultado lo guardás en una variable y luego hacés la query ??
Correcto, y en cualquier query que se vaya hacer a la base de datos hay que usarlo.

htmlspecialchars transforma todo los caracteres que son propios del html y los convierte en su version html; o sea que el usuario ve lo mismo que escribio pero no ejecuta, por ejemplo si en la base de datos esta <script>window.document.href = 'http://virusX.tk'</script> eso es exactamente lo que vera el usuario, mas no se ejecuta, ya que el codigo, solo quedaria
&lt;script&gt;window.document.href = 'http://virusX.tk'&lt;/script&gt; ;

htmlspecialchars tiene un segundo parametro para especificar si incluir o no las comillas doble en los caracteres a remplazar y un tercer parametro para seleccionar en que codificacion quiere el resultado (por defecto es ISO-8859-1 que usualmente sirve perfectamente)

En la pagina oficial de php puede ver mas info al respecto de esta funcion.
  #5 (permalink)  
Antiguo 03/05/2011, 01:55
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: como podria mejorar la seguridad en este codigo

Cita:
Iniciado por InKarC Ver Mensaje
Correcto, y en cualquier query que se vaya hacer a la base de datos hay que usarlo.

htmlspecialchars transforma todo los caracteres que son propios del html y los convierte en su version html; o sea que el usuario ve lo mismo que escribio pero no ejecuta, por ejemplo si en la base de datos esta <script>window.document.href = 'http://virusX.tk'</script> eso es exactamente lo que vera el usuario, mas no se ejecuta, ya que el codigo, solo quedaria
&lt;script&gt;window.document.href = 'http://virusX.tk'&lt;/script&gt; ;

htmlspecialchars tiene un segundo parametro para especificar si incluir o no las comillas doble en los caracteres a remplazar y un tercer parametro para seleccionar en que codificacion quiere el resultado (por defecto es ISO-8859-1 que usualmente sirve perfectamente)

En la pagina oficial de php puede ver mas info al respecto de esta funcion.
Muchísimas gracias por tu aporte. La verdad me va a ser bastante útil porque la primera función que mencionas, sobre mysql, no la conocía, la segunda si, pero no sabía que se implementaba para temas de seguridad :)

un saludo y muchas gracias de nuevo.
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: mejorar, seguridad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:28.