Bueno si tu aplicación trabaja con formularios o manejo de superglobales POST, GET debes protegerte de ataques xss o rfi.
Xss:
Debes Filtrar todas las superglobales que el usuario puede modificar con la función
htmlentities()
que se encarga de tratar los códigos html como texto plano, así que cuando alguien intente <b>Texto</b> lo mostrara de la misma forma y no se pondrá el texto en negritas. Rfi:
Bueno para protegerte de un rfi no puedes incluir una variable que el usuario toque sin asesorarte de que sea el script que verdaderamente debe incluirse, para eso existen muchos sistemas de modulación.
Ahora si tu aplicación trabaja con base de datos solo tienes que filtrar todas las superglobales con la funcion
mysql_real_escape_string()
que se encarga de colocar barras invertidas ante estos caracteres \x00, \n, \r, \, ', " y \x1a. Mas Información de las funciones antes mencionadas:
- http://es.php.net/mysql_real_escape_string
- http://es.php.net/htmlentities
Ejemplos:
// Mostrando un Texto
$texto = htmlentities($_POST[texto]);
echo $texto;
$texto = htmlentities($_POST[texto]);
echo $texto;
// Actualizando una tabla
$nick = mysql_real_escape_string($_POST['nick']);
$password = mysql_real_escape_string($_POST['password']);
$actualizacion = "UPDATE usuarios SET password = '$password' WHERE nick = '$nick'";
mysql_query($actualizacion);
$nick = mysql_real_escape_string($_POST['nick']);
$password = mysql_real_escape_string($_POST['password']);
$actualizacion = "UPDATE usuarios SET password = '$password' WHERE nick = '$nick'";
mysql_query($actualizacion);
Bueno espero que les sirva de ayuda y si tienen alguna duda sobre seguridad o PHP en general me envían un Mensaje Privado y con gusto les ayudare.
Saludos, Dacan