Je suis en train d'implémenter une application web qui est alimentée par le backend via une interaction serveur/client. Le site Web fonctionne sur https et l'authentification est fournie par LDAP.questions d'applications Web sécurisées
A partir de maintenant, je pousse tous les utilisateurs sans cookie, appelez-le 'userHash' pour référence à la page de connexion. La page de connexion accepte un nom d'utilisateur, passe et vérifie ldap pour vérifier. S'il vérifie, je stocke dans ma session le nom d'utilisateur, l'adresse IP de l'utilisateur et un horodatage.
Enfin je construis une information de cookie et hachage de session:
SESSION['userHash'] = sha1($username.$userip.$timestamp);
cookie['userHash'] = sha1($username.$userip.$timestamp);
De cette façon, sur toute demande ultérieure, je vérifie les posses utilisateur le userhash cookie avec une valeur correspondant à la session [ 'userhash']
Cette configuration est-elle sécurisée?
De plus, je veux empêcher les attaques par force brute et j'allais implémenter une simple table DB pour consigner les tentatives échouées. Actuellement, je pense à avoir:
id | username | timestamp | ipaddress | count
comme un tableau. Est-ce la meilleure approche ou existe-t-il un meilleur moyen? Je vois par exemple avec cette table que si je devais limiter les tentatives ratées à 3 toutes les 24 heures, alors un attaquant a la possibilité d'essayer chaque nom d'utilisateur 3 fois à partir du même Ip. (Remarque: cette application devrait être utilisée sur des laboratoires d'informatique potentiellement scolaires qui peuvent être sur un sous-réseau et ainsi montrer plusieurs connexions à partir de la même adresse IP, donc je dois faire attention quand je bloque en fonction de l'adresse IP. D'autre part, je me demandais s'il y a quelque chose comme "denyhosts" pour l'authentification http?
Vous pourriez obtenir de meilleures réponses à serverfault.com – Johan
Merci Essaye là, puisque je suis en train de coder l'application que je pensais ici serait plus approprié mais il ne peut pas blesser d'essayer là-bas aussi! – Chris