2011-08-08 4 views
2

J'essaye de rouler mon propre système d'authentification dans codeigniter, et j'ai trébuché sur quelques barrages routiers.Authentification sécurisée dans codeigniter

Si j'ai les sessions configuré pour utiliser une base de données, est userdata stockée dans la base de données seul ou dans le cookie ainsi? Je voudrais y stocker le mot de passe haché afin de vérifier le chargement de chaque page qu'un utilisateur est réellement connecté avec la bonne passe, et je ne veux pas que le hachage soit accessible du tout.

Comment puis-je empêcher le vol des sessions? J'ai activé la vérification de l'adresse IP et du nom d'hôte, est-ce automatique ou dois-je effectuer moi-même les vérifications? Cela suffira-t-il à empêcher les gens de voler des données de session?

Répondre

3

Userdata peuvent être stockées dans la session. Si vous avez configuré des sessions pour utiliser une base de données, le seul cookie sera un cookie ci_session ou ce que vous spécifiez, et le cookie + ip/nom d'hôte sera mis en correspondance avec la table des sessions de base de données.

Stockage du mot de passe haché en cours de session sera complètement sûr, son dans votre propre base de données. Pas de problème.

Prévention des sessions à volées devraient utiliser un ip ou hostname match (soit chaque chargement de page ou un peu moins souvent, certaines personnes ont une adresse IP dynamique), pas sûr au sujet de la vérification automatique, mais il est toujours agréable si vous vérifiez par vous-même.

Empêcher le vol de données de session est à peu près comme ça. À moins que quelqu'un n'intercepte votre cookie et signale magiquement une fausse adresse IP (ou, bien, partage un IP/nom d'hôte avec la cible), c'est suffisant. Vous pouvez également faire une autre vérification, correspondre à user_agent. Que vous devrez faire manuellement.

C'est à peu près tout.

+0

Il serait bon de donner un exemple de code, je suis à la recherche, mais ne peut pas trouver celui qui fonctionne sur config.php –

Questions connexes