Autor Tema: [[ AYUDA ]] Funciones para la seguridad de la web.  (Leído 1096 veces)

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
[[ AYUDA ]] Funciones para la seguridad de la web.
« en: 30 de Noviembre de 2007, 16:32:05 pm »
Hola, les traigo una preguntita... Yo estoy desarrollando mi primer web integra en php, y nose que funciones se utilizan comunmente para la seguridad de los formularios, bases de datos, etc.
Yo conozco las siguientes funciones:
Código: [Seleccionar]
<?php
mysql_real_escape_string
();
mysql_escape_string();
addslashes();
htmlspecialchars(); 
?>
Si hay alguna otra avisen.

Les muestro los datos que me gustaria proteger:

*Un formulario de registro, que si el chequeo da ok inserta los datos en la BD (mysql).

* un formulario de contacto con el cual me envia un mail.

* Formularios que realizan consultas en la BD.

* Formularios que modifican datos de la BD.

Creo que eso es todo, de todas formas no me molestaria que comenten algun otro metodo de seguridad.


Bueno eso es todo, gracias de antemano. Saludos.
8)

Comunidad PHPeros

[[ AYUDA ]] Funciones para la seguridad de la web.
« en: 30 de Noviembre de 2007, 16:32:05 pm »

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #1 en: 01 de Diciembre de 2007, 14:55:43 pm »
* Formularios que modifican datos de la BD.

Pues te dare el codigo para que se puedan cambiar los datos, luego tu me dices como lo quieres proteger, o si lo quieres dentro de un panel o algo asi, y te ayudo. O bueno, ayudamos por que aqui estamos todos y yo soy algo novatilla. Agarrare un codigo que use yo para el panel de mis users que puedan cambiar el correo. Aqui te tengo como protegerlo con cookies, si es en un panel de usuarios.
Código: [Seleccionar]
<?php
include(&#39;conectar.php&#39;);
if($_COOKIE[&#39;usuario&#39;] and $_COOKIE[&#39;contrasena&#39;]){ // Verificamos que este conectado 
echo &#39;<form method="POST" action="cambiarcorreo.php">
<p>Nuevo Correo:<br>
<input type="text" name="correo" size="20"></p>
<p><input type="submit" value="Cambiar Correo" name="cambiar"><input type="reset" value="Cancelar" name="B2"></p>
</
form>&#39;; // Mostramos el formulario
} else {
echo 
"Necesita estar registrado para ver esta pagina."// Lo que se muestra si no esta conectado
}
if(isset(
$_POST[&#39;cambiar&#39;])){ // Verificamos que pulsen el boton cambiar
mysql_query("UPDATE usuarios SET correo = &#39;".$_POST[&#39;correo&#39;]."&#39; WHERE usuario=&#39;".$_COOKIE[&#39;usuario&#39;]."&#39; AND contrasena=&#39;".$_COOKIE[&#39;contrasena&#39;]."&#39;"); 
// Cambiamos el campo correo en la bd, por lo que se ha escrito en el campo del formulario, esto lo cambiamos donde el usuario es el que esta conectado, y la pass del usuario que esta conectado.
{
echo &
#39;Haz cambiado tu e-mail.<br>&#39;; // Si todo sale bien mostramos que todo ha salido bien
echo&#39;<a href="index.php">Volver atras</a><br>&#39;;
}
} else {
echo &
#39;El proceso no se ha completado aun.&#39;; // Si no sale bien mostramos esto
}
?>


Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #2 en: 01 de Diciembre de 2007, 15:04:32 pm »
Mara, me parece que lo que Martin10 busca es que el texto introducido por el usuario se interprete como texto plano y no como líneas de código que puedan afectar a la seguridad del sistema.

Podría usarse una función parecida a esta:


function Seguridad($cadena) {

$cadena htmlspecialchars(trim($cadena));
$cadena eregi_replace("<[^>]*>","",$cadena) ;
$cadena eregi_replace(".*//","",$cadena) ;

return 
$cadena;
}


y luego podría aplicarse así a las variables:


$nombre 
Seguridad($_POST[&#39;nombre&#39;]);
Raken - Moderador para PHP y HTML

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #3 en: 01 de Diciembre de 2007, 15:40:50 pm »
Gracias por corregirme raken , re***** que soy muy nueva en todo esto, pero el codigo en si estaba bien?

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #4 en: 01 de Diciembre de 2007, 16:20:29 pm »
Aparentemente sí está bien, aunque creo que sobran estas líneas:


// Cambiamos el campo correo en la bd, por lo que se ha escrito en el campo del formulario, esto lo cambiamos donde el usuario es el que esta conectado, y la pass del usuario que esta conectado.

{     //-------> SOBRA

echo &#39;Haz cambiado tu e-mail.<br>&#39;; // Si todo sale bien mostramos que todo ha salido bien
echo&#39;<a href="index.php">Volver atras</a><br>&#39;;

}     //-------> SOBRA


Ya que no abren/cierran ninguna función.

El problema de ese código que expones es precisamente lo que se comenta en este post. Estás cogiendo los valores DIRECTAMENTE del formulario y los estás utilizando en la DB sin más. En este post hablamos de a qué funciones someter estos datos antes de operar con ellos, pues el usuario puede meter código en el formulario y alterar el sistema. ;)
Raken - Moderador para PHP y HTML

Desconectado Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #5 en: 02 de Diciembre de 2007, 05:36:58 am »
En realidad los datos que mas me gustaria proteger son los de las bases de datos...
Yo no sabia si usar la funcion mysql_real_escape_string() o mysql_escape_string(); convinadas con addslashes(); para ingresar datos a mysql.

La funcion para pasar a texto plano esta buena pero no me sirve mucho ahora, igual gracias  :)
8)

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #6 en: 02 de Diciembre de 2007, 09:09:04 am »
Lo mejor que puedes usar es mysql_real_escape_string() que es en realidad una conbinacion de varias funciones, por ejemplo, se encarga de colocar barras invertidas ( \ ) a las comillas simples y dobles, igual que hace addslashes().

Conclusion, usa mysql_real_escape_string(), es sencilla, rapida, eficaz y segura.

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 Martin10

  • PHPer@ Fijo
  • ***
  • Mensajes: 160
  • Karma: 11
  • Sexo: Masculino
    • Ver Perfil
Re: [[ AYUDA ]] Funciones para la seguridad de la web.
« Respuesta #7 en: 02 de Diciembre de 2007, 22:56:07 pm »
Muchas gracias TLX, lo voy a tener en cuenta.
8)