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é] PHP, identification unique ?


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut [Sécurité] PHP, identification unique ?
    Bonjour,

    Je développe un site expérimental en php/ajax/smarty avec Gestion d'utilisateurs.

    Je recherche LE système de sécurité le plus efficace possible.
    Petit aperçu de mon système actuel:
    - Stockage en DB des logins+pass et ip
    - Création de sessions contenant login+pass ($_session) si connexion valide.
    - Modules de contrôle d'existence de session, de login et de Ban (si un user est banni sur IP ou sur login, reco au bout de 15/30 minutes) sur chaque page.
    - Timer JS/AJAX sur chaque page qui deconnecte un utilisateur automatiquement (à une seconde prêt) si l'administrateur l'a banni de lui-même ou s'il a tenté 3 connexions échouées (MAJ dans la table des IP).

    Biensur mon système ne me convient pas tout à fait. En effet puisque je me sers de l'IP de l'utilisateur pour le bannir, un réseau local derrière un routeur se verrait banni entièrement (pdt les 15/30 minutes décidées) puisque l'IP publique est la même pour chaque poste (c'est le cas du système de ban de developpez.com d'ailleurs ... j'ai banni les développers de ma boite pdt 15 minutes hier lol).

    Donc, actuellement, lors d'un ban sur ip, il suffit pour l'utilisateur de se reconnecter, de se voir attribuer une nouvelle ip et de refaire des tentatives de connexion au site. Un acharné ne serait pas dérangé par ce système.

    Il n'y a pas d'identification unique d'un poste sur internet, seulement avec le FBI, les crackers etc...qui font des prouesses sans arrêt, je me dis que peut-être une astuce existe! J'ai pensé récupérer des informations locales diverses par javascript seulement c'est transparent et pas très "pro".

    Je ne compte pas utiliser d'activeX ni même de WSH etc...

    Je pourrais éventuellement utiliser l'HTTP_USER_AGENT ou l'HOST de la trame mais c'est facile à contourner en utilisant un autre navigateur etc...etc...

    Simplement : Comment bannir un poste situé derrière un réseau local qui dispose d'une IP publique unique? Héhé, on va me dire "pas possible" mais je ne sais pas pourquoi...je suis têtu de sentir que c'est POSSIBLE en récupérant une certaine information unique bidon et infalsifiable (genre une clé, une version d'un soft, quelquechose d'absolu) mais bon ça se saurait!
    Simplement2: Y voyez-vous un autre système de sécurité pour mon site?

    Merci

  2. #2
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut multipost
    Hey c'est spé, ça fait deux fois en deux jours que je fais un multipost ss le vouloir, et deux fois que developpez.com me déllogue à l'envoi du message, pourtant il transfère bien le message apparement..ya un hic de dev!

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Comment bannir un poste situé derrière un réseau local qui dispose d'une IP publique unique? Héhé, on va me dire "pas possible" mais je ne sais pas pourquoi...je suis têtu de sentir que c'est POSSIBLE en récupérant une certaine information unique bidon et infalsifiable (genre une clé, une version d'un soft, quelquechose d'absolu) mais bon ça se saurait!
    un cookie...mais il peut le supprimer

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    voyez-vous un autre système de sécurité pour mon site?
    perso, je separerais encore plus la gestion des utilisateurs grace a un ldap, mais bon tout depend comment tu heberges ton site...

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Il y a déjà un sujet de 8 pages à ce sujet. Je te propose de le parcourir et de nous faire part là-bas de tes remarques :

    [Login membre] Sécurité TOTALE !!!

  6. #6
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut Survol et reformulation
    Merci beaucoup, j'ai survolé le topic mais ça ne me concerne pas, il est bien trop généralisé et s'embarque trop rapidement dans un débat puriste sur la sécurité parfaite des servers dédiés lol (d'où sa mise en POST-IT).

    Je ne compte pas utiliser l'HTTPS ni SSL ni de HASH md5.

    Il s'agit d'un site expérimental que je développe destiné pour l'instant à rester expérimental à ne pas être dédié et à fonctionner comme tout site classique PHP qui dispose d'un système d'authentification ...

    Je recherche un système de sécurité qui n'existe pas et qui est "infaillible" (haaa là j'ai tout de suite l'air idiot lol), c'est pourquoi je vais reformuler ma question:

    "Quelle est selon vous la (ou les) donnée native récupérable PHP/JAVASCRIPT la plus explicite dans l'identification d'un poste sur le 'web' ??"

    Par ailleurs je tiens à préciser que les éventuels membres du site seront ou bien des amis ou bien de la famille (totale confiance dans les deux cas), je n'envisage donc aucune protection interne contre les membres.

    Là où j'en suis actuellement c'est que je ban qlqun qui tente de se connecter plus de trois fois (débanni au bout de 15 minutes), seulement je ban en mm tps tous les postes se trouvant derrière un réseau local (l'ip publique étant la mm pour chaque poste)...VOILA! Haaa j'aurai dû commencer par là! Je veux pouvoir bloquer définitivement un poste et cela mm si c'est impossible ( ).

    Merci!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    si ça peut t'aider :

    le site kadokado.com interdit la création de plus de deux comptes par jour depuis la même IP (tu suis ?), en tout cas c'est ce qu'ils disent ("IP"). Car à mon univ, il suffit de se mettre sur le poste d'à côté pour pouvoir recréer un compte, alors que la limite est atteinte sur le premier PC. Pourtant vu du net, les 2 ont sûrement la même IP !

    Donc il doit exister une solution. (je dis n'importe quoi, mais l'adresse physique est peut-être visible par PHP non?)

    De toutes façons, il est mauvais aussi de bannir un PC, s'il est public...

  8. #8
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut pas d'@ mac
    L'adresse mac est dans la couche physique et invisible sur le net.
    Dans ton cas c'est le routeur qui est l'explication logique...
    Le routeur renvoi la requête à l'adresse IP LOCALE de ta machine donc.
    C'est pourquoi chaque poste peut recréer un compte.

    Dans mon cas je récupérère l'adresse du routeur (évidement).

    Merci de ta réponse

  9. #9
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut Petit détail
    Ha oui je tiens à dire aussi que l'idée de parvenir à identifier un poste de manière unique sur le web vient d'une solution ajax que j'ai choisie. A chaque clic sur la page de login, une requête est exécutée par XHRconnexion et envoie un message indiquant si "connexion valide" (2sec d'attente et redirection) ou "connexion échouée", à ceci s'ajoute mon timer AJAX qui toutes les secondes effectue une requete php pour récupérer le nombre d'essais restants disponible pour l'IP en cours et affiche le resultat dans le petit cadre juste en dessous du formulaire de login. Cela fait une interface de connexion vraiment classe qui réponds a chaque requête de manière automatisée.

    Seulement...héhé je me suis connecté à mon site sur un autre poste du réseau local qui se voit attribuer toutes les secondes l'actualisation du nombre d'essais restants du poste qui tente de se connecter.

    Une fois que le poste 1 est connecté. Le poste 2 a automatiquement le message suivant "vous êtes déjà connecté".

    Ca permet d'empêcher un utilisateur d'ouvrir plusieurs sessions sur le site (ça je l'interdis, c'est un choix réfléchis ^^). Seulement si je n'arrive pas à identifier un poste sur le web, tous les postes derrière un réseau local sont interdis d'accès le temps que le poste 1 se déconnecte et libère une session.

    Moi je veux autoriser une session par poste!!!

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    rajoute un cookie en plus non ?

  11. #11
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut cookie
    Ben le soucis des cookies c'est que tous les postes peuvent les refuser et qu'un cookie a une durée de vie limitée...mais oui je vais aussi utiliser ça!

    En fait je viens de cogiter un bon moment et je me résouds à conserver mon système actuel qui n'est pas si mal que ça à part qu'il banne par IP donc tout un réseau local derrière un routeur...

    C'est le cas de developpez.com...et c'est dommage!

    j'ai pensé utiliser une appli windev qui disposerait d'une clé unique (comme les cnx SSH) et que le server controlerait par une autre appli windev...donc chaque poste client du site doit avoir l'appli en question. Seulement ça fait de la bidouille réseau et ça impose que le membre ne puisse se connecter à mon site que depuis son poste ou depuis un autre poste mais avec la clé. pfouuuu!

    Un collègue vient de me causer d'un système de reconnaissance de la frappe au clavier (robot ou humain) qui est tout récent et pas tout à fait encore fiable à 100%. Bon bref, faut pas rêver...

    J'ai choisi finalement ça:
    -->identification IP
    -->identification user agent
    -->Une protection supplémentaire : dépôt de cookie
    -->Une protection imposante supplémentaire : qui ferme le site si le nb de ban dépasse 3 en 2 minutes.(ouais ça déconnecterait tout le monde d'un coup c'est hard...)
    --> ET BAN d'un pseudo si tenté 3 fois sans succès!

    ha ouais sinon une autre astuce, créer un timestamp entre l'heure de la machine cliente et l'heure du server et contrôler la différence entre les deux. Seulement c'est grillé pour les réseaux qui ont un server de temps...;(

    Bon je vais arrêter de me cramer les neurones pour ça même si j'adore me cramer les neurones

    En tout cas je suis à l'écoute de toutes vos inventions!

    Merci!

  12. #12
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par speedev
    Bon je vais arrêter de me cramer les neurones pour ça même si j'adore me cramer les neurones
    Je crois que la phrase est bien choisie ;o)

    Tu dis qu'il s'agit d'un site d'amis ou de membres de la meme famille, et tu cherches a utiliser des systemes de ouf pour proteger le contenu... il s'agit de la famille du directeur de la NSA ?

    Dans tout développement, il y a toujours *mieux*, il faut donc a chaque fois savoir distinguer ce que est necessaire du superflu. Cela est d'autant plus vrai quand on attaque le domaine de la sécurité.
    La sécurité est un compromis entre la sécurité totale et l'ergonomie. Tu peux aussi enregistrer une liste de 100 questions/reponses personnes pour tes membres et obliger tes membres a répondre juste 4 fois d'affiler parmis des questions aléatoires tirées dans le pool pour acceder au site...

    De plus, point de vue developpement, meme si ca fait tres *chef de projet* ou ce que tu veux (et que je comprenne ton point de vue, étant moins meme un poil perfectionniste ;o), il ne faut pas oublier qu'il vaut mieux passer 10h sur une portion de code utilisée 99% du temps, que 2h sur une portion de code utilisée 0,01% du temps... or là, je crois que tu fait le contraire ;o)

    Il est impossible de bannir completement qqun qui a de petites connaissances en informatique, il suffit de trouver un proxy ou un anonymiseur pour passer toutes les barrieres. Un ban limité dans le temps sur une IP en cas de connection infructueuse a répétition, oui, c'est deja tres bien... ca evite les attaques simples par force brute. Mais je crois pas qu'il faille chercher beaucoup plus loin (surtout pour un projet non professionnel ;o)

  13. #13
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut Huhuhu
    Ha non non ma famille n'est pas celle du dirlo de la NSA mais quitte à ce qu'un pirate ne choppe pas la photo de ma frangine à walpé dans la douche...^^

    Bon, ce site a un interêt professionnel avant toute chose biensur!
    Mais cette recherche obstinée me permet de me familiariser avant tout avec les langages de développement, les différents environnements informatiques innovants et les différentes possibilités. Ensuite vient l'intérêt personnel! Quitte à ce que le travail me permette de m'épanouir dans mes loisirs tout en favorisant mon expérience de développement...tant mieux c'est tout bénef'!

    A la base j'ai une formation réseau, mais maintenant je suis développeur et je m'embarque facilement dans des trucs extra-informatique. Ca va se tasser rapidement...

    Mais il ne faut pas oublier que:
    Mon système actuel fonctionne nickel! lol
    Et si on ne tente pas l'impossible de temps en temps ça ne sert à rien de faire du développement.
    Un esprit curieux dans le domaine du développement est à 100% le meilleur esprit...Faut juste fixer des limites...j'vais le faire j'vais le faire...

    a+

Discussions similaires

  1. AS400/PHP - Identification execution de RPG ou CLLE
    Par sananas dans le forum AS/400
    Réponses: 0
    Dernier message: 08/02/2008, 11h41
  2. Identification unique de processeur ou de disque dur
    Par dingoth dans le forum Composants
    Réponses: 6
    Dernier message: 03/07/2006, 14h12
  3. algo pour identification unique
    Par quiyai dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 05/07/2005, 12h42
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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