PHP
Bonnes idées/résolutions
(Bon c'est pas valable que pour PHP.)
Sécurité utilisateur
- Stocker les mots de passe hashés dans la base (mieux, avec un salt, encore mieux, avec un salt différent pour chaque user !)
- Faire l'authentification par login en utilisant un challenge en javascript (méthode différente en fonction du hashage du mot de passe dans la DB)
- Ne permettre la modification de mot de passe et d'email que si on donne l'ancien mot de passe (évite le vol de compte consécutif au vol de session)
- Chiffrer/hasher directement le mot de passe en JS quand on l'utilisateur l'envoie (login/modification/vérification)
Sécurité de l'application
- Séparer les objets, includes, trucs lancés en CLI, etc. des trucs accessibles en web (par exemple faire un répertoire www/ séparé, www/ sera pointé par le serveur web et donc les autres trucs seront pas dispos)
- Ne pas utiliser les variables pour transmettre des données entre includes quand on est sur un environnement inconnu (si register_globals est activé, risque de résultats méchants si la variable n'est pas initialisée par vous)
Le futur c'est bien
- Utiliser UTF-8 nativement
- Utiliser filter_var pour valider une variable plutôt que des preg_match. Exemple : filter_var($email, FILTER_VALIDATE_EMAIL) cf. doc PHP
- Utiliser un serveur de contenus statiques séparé (URL différente, pour ne pas transmettre les cookies)
- Mettre une expiration longue sur les éléments statiques (faire jouer le cache)
w00t tokenizer