8792 sujets

Développement web côté serveur, CMS

bonjour à tous,

une petite question toute simple : Comment bien gérer la sécurité sur un site web ?

Par exemple pour accéder à la partie administration du site, mieux vaut-il utiliser un htaccess ou stocker un login et un mot de passe en base de données ?

merci

PoichOU
Modifié par PoichOU (28 May 2007 - 10:58)
Salut,
s'il n'y a qu'un couple login/mot de passe, htaccess reste un must, difficile à craquer (à condition de ne pas mettre louloutte comme mot de passe bien sûr Smiley smile ). En revanche, si tu penses à terme devoir jouer avec des listes d'admin et des droits différents pour certains, la solution bdd/session devient nettement plus pratique et souple (pense à stocker les mdp cryptés dans la base et, même remarque pour louloutte Smiley smile )

have swing
Les deux ont la même limitation : le mot de passe est envoyé en clair, donc quelqu'un qui intercepterait la requête de connexion aurait accès au mot de passe. La seule solution pour éviter ce problème est la connexion chiffrée par HTTPS (SSL). Pas toujours évident à mettre en place.

Sinon :
Le .htaccess te permet de te reposer sur le savoir faire des développeurs d'Apache et éventuellement de bénéficier des mises à jour de sécurité. Sinon si tu as suffisamment confiance dans ton code, la solution en BDD est plus souple, comme indiqué ci-dessus.

Concernant le cryptage en BDD, il évite qu'en cas de piratage de la BDD on récupère tous les accès. Il ne concerne pas la sécurité à la connexion au jour le jour.
Hello,

Il existe une issue pour que le mot de passe ne transite pas en clair dans l'entête HTTP :

Le formulaire de login comprend
- un champ "nom d'utilisateur"
- un champ "mot de passe"
- un champ caché

La validation du formulaire est intercepté par un javascript (onsubmit dans la balise <form>)

Le javascript
- lit le champ "mot de passe"
- crypte ce qu'il a lu
- met le résultat du cryptage dans le champ caché
- met à blanc le champ "mot de passe"

C'est donc le mot de passe crypté qui transiste dans l'entête HTTP.

Evidemment dans le script de vérification on récupère la valeur du champ caché ! Si je retrouve le code je le poste (un peu la cosse ce soir...)

Sinon pour le .htaccess il faut aussi voir du côté de l'hébergeur (Free par exemple ne permet pas de crypter les mots de passe pour le .htaccess !).

Cheers,

Jmm.
Modifié par Helios (30 May 2007 - 22:07)