Hola, estoy haciendo un login y normalmente siempre suelo hacer patatas del tipo pedir el usuario y la contraseña y el login básicamente es:
$user = $_POST["user"]; $pwd = $_POST["pwd"];
$query = "SELECT * FROM users WHERE user = '$user' AND pwd = '$pwd'";
$n = mysql_num_rows(mysql_query($query));
if($n == 1) {
//it's ok.
}
Y esto lo hago porque normalmente las páginas en las que trabajo sé que no van a ser atacadas.
El caso es que ahora estoy con una un poco más grande, y creo que ya es hora de aprender a hacer logins algo más serios. Y me han surgido algunas dudas.
1.- ¿Las SESIONES son modificables de alguna forma por el usuario? Es decir, si yo creo una sesión $_SESSION["user_id"] con la id. del usuario, ¿luego el usuario puede de alguna forma modificar el contenido de esta sesión con cualquier otra ID?
2.- Las sesiones pueden crear conflictos con otras webs? Es decir, si una Web utiliza la sesión "user_id" y yo también, ¿habrá problemas?
3.- ¿Qué información se ha de guardar en sesiones para logins seguros? ¿Con la ID ya vale, o mejor algo más (u otra cosa)?
4.- ¿Cuál es la mejor protección contra el SQL Injection? ¿Basta con filtrar los campos "quitando" caracteres raros?
5.- Me gustaría integrar el sistema de Login con Facebook, más o menos al igual que Forosdelweb, ¿requiere eso campos adicionales en la base de datos o algún tipo de seguridad aparte? ¿Cuál es la mejor forma de hacer esto?
Responded a las que queráis.
Muchas gracias!