IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Sécurité totale pour un espace membre [Débat]


Sujet :

Langage PHP

  1. #181
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Je réouvre le sujet parce-que je travaille sur la nouvelle version 3 d'ESPMEM. Le programme est déjà bien avancé, mais je bloque sur un petit problème. Sachez d'abord que j'essaye de me passer de Javascript autant que possible, et pour l'instant, j'y arrive, car il n'y a pas une ligne de code JS et tout fonctionne...

    Je ne sais plus si on en avait déjà discuté ou pas... Je voudrais simplement pouvoir interdire une connection lorsque celle-ci à déjà été effectuée. Je m'explique : L'utilisateur se connecte et après sa visite se déconnecte (normal). Seulement, l'historique du navigateur permettrait de revenir en arrière et de réafficher le formulaire de connection, et même si le mot de passe est affiché caché, il reste possible de se reconnecter. Je cherche donc une solution, un système de ticket peut-être pour contrer une connection avec un ancien formulaire.

    Peut-être avez-vous des idées.

    Merci.
    De retour parmis vous après 10 ans!!

  2. #182
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Salut!

    Je réouvre le sujet parce-que je travaille sur la nouvelle version 3 d'ESPMEM. Le programme est déjà bien avancé, mais je bloque sur un petit problème. Sachez d'abord que j'essaye de me passer de Javascript autant que possible, et pour l'instant, j'y arrive, car il n'y a pas une ligne de code JS et tout fonctionne...

    Je ne sais plus si on en avait déjà discuté ou pas... Je voudrais simplement pouvoir interdire une connection lorsque celle-ci à déjà été effectuée. Je m'explique : L'utilisateur se connecte et après sa visite se déconnecte (normal). Seulement, l'historique du navigateur permettrait de revenir en arrière et de réafficher le formulaire de connection, et même si le mot de passe est affiché caché, il reste possible de se reconnecter. Je cherche donc une solution, un système de ticket peut-être pour contrer une connection avec un ancien formulaire.

    Peut-être avez-vous des idées.

    Merci.
    Fr : Connexion
    En : Connection

    Dans le livre sur la sécurité PHP5 et Mysql l'auteur livre une astuce qui pourrait éventuellement t'aider.
    C'est la date d'expiration d'un formulaire. Dans un champs caché c'est de placer une date. Si c'est date est passé alors le formulaire n'est plus valide. Si le site est public alors il est possible de crypter via un MD5 cette date mais du coté serveur il faut faire un MD5 par seconde ou minute sur l'intervalle souhaité. Après il faut comparé avec ce qui a été envoyé et la liste des md5.
    Il y a une autre solution qui consiste à ne pas valider une page si l'action précédente à été déjà faite en y plaçant un marqueur et en l'enregistrant.
    Dans mon cas ou j'ai une suite d'action je marque le passage de chaque page.
    S'il elle revient elle est annulé. Par contre, quand la suite d'action est finit alors le marquage est effacé et il peut recommencer.

    En faite, il y a plusieurs idées qui peuvent être utilisées. Le but est d'utiliser celui qui le plus approprié sans gêner l'utilisateur.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #183
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Citation Envoyé par berceker united Voir le message
    En faite, il y a plusieurs idées qui peuvent être utilisées. Le but est d'utiliser celui qui le plus approprié sans gêner l'utilisateur.
    Tout a fait, parce que des fois, si un site rame ou autre, je reviens souvent au début des formulaires pour aller plus vite et recommencer.

    Sub0 faudrait que tu m'expliques plus clairement pourquoi ça te pose un probleme ?

    Moi mes formulaires de connexion ne sont jamais réaffiché même si on fait précédent...

  4. #184
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Merci pour vos réponses.

    Le souci était qu'avec le retour arrière du navigateur, il était possible de réafficher le formulaire de connexion et un autre utilisateur pouvait l'utiliser pour se faire passer pour le membre, surtout qu'il ya une option dans ce programme pour pouvoir afficher le mot de passe en clair lors de sa saisie.

    Citation Envoyé par Maxoo Voir le message
    Moi mes formulaires de connexion ne sont jamais réaffiché même si on fait précédent...
    Ce matin, j'ai ajouté des metas "nocache" dans le code et le problème ne semble plus se poser, c'est sûrement la solution la moins contraignante pour l'utilisateur, mais peut-être que le client a la possibilité de désactiver ces metas... Surtout, je ne veux pas qu'il soit possible de faire autrement, c'est-à-dire que, peu importe le navigateur et sa config, il ne soit pas possible d'obtenir un mot de passe dans le cache.

    Vos idées m'intérressent des fois qu'il y aurait plus efficace.
    De retour parmis vous après 10 ans!!

  5. #185
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    il est aussi possible de placer un no cache via la fonction header de php. Regarde dans la doc PHP il place un syntaxe pour cela.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  6. #186
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Bonsoir!

    Merci pour vos réponses.

    Je dois maintenant ajouter une blacklist d'IP. Comme il ne s'agit que de faire une lecture de cette liste, je pensais utiliser un simple fichier texte (accessible uniquement au script) contenant cette liste...

    Selon vous, vaut-il mieux utiliser une table de données ? Si oui, pourquoi ?
    De retour parmis vous après 10 ans!!

  7. #187
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    Un table en mémory (Heap) si ce genre d'information est très souvent demandé. Par contre, attention si jamais le serveur Mysql redémarre car les données vont disparaitre.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  8. #188
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je ne connaissais pas, c'est exactement ce qu'il me faut je crois.
    Je suppose qu'il est possible de créer cette table à partir du fichier texte contenant les IP et de la recréer si elle disparaît...

    Merci
    De retour parmis vous après 10 ans!!

  9. #189
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Je ne connaissais pas, c'est exactement ce qu'il me faut je crois.
    Je suppose qu'il est possible de créer cette table à partir du fichier texte contenant les IP et de la recréer si elle disparaît...

    Merci
    Moi j'ai une astuce. L'écriture se fait dans une table MyIsam en parallèle a celle qui est en HEAP mais la lecture se fait sur le HEAP. Si jamais la table est vide alors il y a une copie MyIsam => HEAP.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  10. #190
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut
    Bonjour, je fait maintenant mes sites en utilisant pas mal les include ( je vais faire un petit exemple )

    index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    session_start();
    include("conex.ini.php");// connecter a la base de donnée 
    if(isset($_SESSION['id_client']))
          {
           //connect Ok 
     
    //page demandé 
           switch($_GET['m'])
     {
             case '1':
             include("lien1.php")
             break;
    ....................
    }
    }
    else
    {
    include("formulaire.php");
    }
     
    ?>
    Puis dans la page lien1.php

    je ne me connecte pas a la base de donnée ( déjà fait ) et je ne vérifie rien, car si il vont sur la page , elle devrai générer que des erreurs .

    Est se que j'ai raison de faire comme sa ? Ou , je devrai faire autrement , merci d'avance .

  11. #191
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    Apparemment, vous vérifier si id_client est déjà validé. Je suppose que cette information provient de la base de données. S'il y a un problème avec la base de données je pense pas que id_client soit renseigné. Mais il faut faire des test. initialiser la session à false.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  12. #192
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut
    En fait , chaque client a un id_client , une fois qui sont connecter ils ont une valeur dans id_client , quand le client clique sur deconnecter , s'est simplement session_destroy() ;

    j'ai déjà fait des test , sa ne pose pas de problème , sinon , ma question est surtout sur les include , je risque rien comme sa . J'ai pas envi de voir le site de l'assos étudiante avec des photos de Q en première page ... ( je bloque le login au bout de 5 essai , il faut ensuite valider le compte ... )

    Voila , le site , http://etudiant.epid.fr/

    Dans index.php , il a que un include pour le menu , et un pour la page ...

  13. #193
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 486
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 486
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par paterson Voir le message
    En fait , chaque client a un id_client , une fois qui sont connecter ils ont une valeur dans id_client , quand le client clique sur deconnecter , s'est simplement session_destroy() ;

    j'ai déjà fait des test , sa ne pose pas de problème , sinon , ma question est surtout sur les include , je risque rien comme sa . J'ai pas envi de voir le site de l'assos étudiante avec des photos de Q en première page ... ( je bloque le login au bout de 5 essai , il faut ensuite valider le compte ... )

    Voila , le site , http://etudiant.epid.fr/

    Dans index.php , il a que un include pour le menu , et un pour la page ...
    Je comprend votre inquiétude dans ce cas là, je vous conseille de lire le livre sur la sécurité de PHP et Mysql. Il y a de très bon conseille.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  14. #194
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Meilleurs voeux !
    Citation Envoyé par Sub0 Voir le message
    En ce moment, je planche sur la réalisation d'un captcha illisible pour un ordinateur, qui n'utilise pas des caractères mais des images de divers objets aléatoires... Cette technique limite aussi les tentatives pour contrer les résolutions de captchas en grande série par des humains. J'ai aussi planché sur un cryptage des données postées sensibles avec Javascript... Et une technique pour vérifier l'authenticité du site afin de détecter si il s'agit d'une copie du site (vol de DNS)...
    Si vous avez des suggestions, des idées pour la réalisation de ces fonctions de sécurité, je suis preneur.

    Que pensez-vous de détecter le vol de DNS en surveillant la validité du nom de domaine avec un test WhoIs ou d'une requête HTTP codée. Ce script ne serait lancé qu'une seule fois. Il contiendrait une boucle pour répéter le test toutes les X secondes. En cas de piratage du DNS, un mail d'alerte serait envoyé à l'admin et l'accès aux comptes membres serait bloqué.
    De retour parmis vous après 10 ans!!

  15. #195
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Pour ma part j'éviterais de ré-inventer la roue.

    Pour s'assurer que l'IP pointe bien sur le "bon" site, il y a les certificats SSL. C'est fait entre autre pour ça, et ça marche plutôt bien.

    Surtout que le "piratage DNS" ne se fait pas forcément au niveau du registrar, et que tu ne peux pas tester les serveurs DNS de tous les FAI.
    Google is watching you !

  16. #196
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    bonjour.

    J'ai trouvé cet article intéressant et instructif :
    http://blog.developpez.com/adiguba?t..._et_vie_privee
    De retour parmis vous après 10 ans!!

  17. #197
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Je cherche donc une solution, un système de ticket peut-être pour contrer une connection avec un ancien formulaire.
    Citation Envoyé par berceker united Voir le message
    En faite, il y a plusieurs idées qui peuvent être utilisées. Le but est d'utiliser celui qui le plus approprié sans gêner l'utilisateur.
    Pour ma part j'utilise récemment dans mon formulaire des noms de champs dynamique avec la fonction sha1("nomduchamps" . time()).
    Ainsi le formulaire est à chaque fois unique et le navigateur ne pourra l'auto-compléter.
    Ensuite il suffit de faire passer les noms des champs dans la session pour les récupérer avec les POST du formulaire.
    J'interviens peut-être tard, mais ça peut servir.

  18. #198
    Membre averti

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    638
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 638
    Points : 408
    Points
    408
    Par défaut
    Citation Envoyé par jimmyneutron Voir le message
    Pour ma part j'utilise récemment dans mon formulaire des noms de champs dynamique avec la fonction sha1("nomduchamps" . time()).
    Ainsi le formulaire est à chaque fois unique et le navigateur ne pourra l'auto-compléter.
    Ensuite il suffit de faire passer les noms des champs dans la session pour les récupérer avec les POST du formulaire.
    J'interviens peut-être tard, mais ça peut servir.
    Bonjour,

    Quel est l'objectif des noms de champs dynamiques ?
    Empêcher l'auto-complétion me semble gênant pour l'expérience utilisateur.

Discussions similaires

  1. aide pour un espace membre
    Par cultureman dans le forum Langage
    Réponses: 4
    Dernier message: 03/09/2013, 16h54
  2. [Forum] Quel forum pour mon espace membre
    Par okoweb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/08/2008, 01h12
  3. [Sécurité] Créer un espace membre
    Par Stouille89 dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 00h49
  4. [Sécurité] Gestion d'espace membre
    Par pas30 dans le forum Langage
    Réponses: 11
    Dernier message: 26/12/2006, 20h18
  5. [Sécurité] Réalisation d'un espace membre
    Par Goundy dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo