Page 1 sur 3

Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 11:16
par Géryko
Bonjour,
Sur mon site (PHP4), j'ai des pages publiques et des pages "privées" dont l'accès est subordonné
à la saisie d'un identifiant et mot de passe "pwd". Cela fonctionne très bien.
Pour 30 000 000 de clients il me faut donc fournir et mémoriser autant d' identifiants et mots de passe.
ça fait beaucoup !!
'
La sécurité d'accès n'étant pas un critère absolu, je voudrais faire l'inverse.
Partant du principe que je sais valider un N° de sécurité Sociale (par exemple), serait il possible de
donner accès aux pages "privées" directement, sans passer par la boîte de dialogue du serveur qui me
demande la saisie d'un identifiant et mot de passe ?
Autrement dit : transmettre directement un identifiant et le mot de passe "pwd".

Nota :
J'ai réussi à faire quelque chose qui y ressemble en passant par les sessions mais les pages "privées"
ne sont plus protégées par l'identifiant et le mot de passe initial "pwd".
'
Avez vous une idée ?
Merci tous
Géry

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 11:29
par sirakawa
Bonjour,
Intéressante question.
Les pages privées sont -elles différentes pour chaque client?
Ton souci, si je comprends biehn, c'est de ne pas avoir à créer et mémoriser des couples identifiant/pwd...
Si c'est le cas, il faudait que tes clients aient chacun sur leur machine un truc que tu puisses identifier.
Je me demande si le fonctionnement de github avec sa clef php ne répond pas à la question...

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 14:31
par Géryko
Bonjour sirakawa,

NON, tous les clients ont accès aux mêmes pages que j'appelle "privées"
Il s'agit (dans mon exemple) de bloquer ceux qui non pas de N° de Sécurité Sociale.
OUI, je ne veux pas avoir à créer et mémoriser des couples identifiant/pwd.
'
Qu'est ce que "github avec sa clef php" ?
M'en dire un peu plus stp (Un exemple ou un lien ?)
Merci
Géry

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 15:29
par sirakawa
Parce que je pensais aux clefs pgp:
clef privée et clef publique
https://fr.wikipedia.org/wiki/Pretty_Good_Privacy
et que github qui est un dépôt de logiciels, une forge comme on dit, s'en sert au moment on on y dépose des fichiers.

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 17:23
par Géryko
Re-Bonjour sirakawa,
Merci pour ces infos, mais ça ne répond pas à ma question initiale :
Est t' il possible de donner accès aux pages "privées" directement, sans passer par la boîte de dialogue
du serveur qui me demande la saisie d'un identifiant et mot de passe ?

Quelqu'un aurait-il une suggestion ?
Merci
Géry
=======

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 17:39
par Berzemus
30.000.000 c'est beaucoup de monde, et pas tant que ca. Adobe en gerait 150.000.000, ce qui représentait environ 10 Go en données brutes.
En utilisant un filtre de bloom, il est possible de faire tenir tout ca dans environ 500 Mo, avec quelques effets négatifs (un risque de faux positif, surtout).

Ceci dit, niveau sécurité/confidentialité, si elle est de toute facon optionnelle, évite les problèmes et met tout en libre accès.

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 19:09
par moogli
Partant du principe que je sais valider un N° de sécurité Sociale (par exemple), serait il possible de
donner accès aux pages "privées" directement, sans passer par la boîte de dialogue du serveur qui me
demande la saisie d'un identifiant et mot de passe ?
Autrement dit : transmettre directement un identifiant et le mot de passe "pwd".
salut,

le problème dans tout cela c'est comment déterminer que l'on peux accéder à ces pages ?
tu dit ne pas vouloir vérifier un couple id/pwd, mais parle de vérifier un N° de sécu, il va bien falloir demander ce n° (donc une boite de dialogue).
si cela te va, et en partant du principe que tu sais le valider) il te faut, à la validation du formulaire qui demande le N° de sécu que tu place les bonnes variable indiquant que tu es connecté (un id ou autre ?).
Ne sachant comment ceci est réalisé dans ton code je te donne un exemple simpliste :
<?php
function isSecuNumber(numero){
    // je te laisse faire
    return false;
}

if (!empty($_POST['le champ du numéro de sécu'])) { // tu peux ajouter un champs pour éviter les crssf

    if (isSecuNumber($_POST['le champ du numéro de sécu'])) {
        // on se connecte
        $_SESSION['userid'] = $_POST['le champ du numéro de sécu']);
        // redirection page qui va bien
    }
//    redirection page d'origine car N° Ko

}

// vérification, basique, de la connexion
if (empty($_SESSION['userid'])) {
    // oula pas bien t'as pas la droit oust ...
    // redirection
}
perso je serais de l'avis de Berzemus, vu la "sécurité" demandé autant ne pas s'emmerder à faire un truc pareil (simplement parce qu'il y a de forte chance qu'en demandant à google gentiment y a moyen de trouver un algo pour générer un N° de sécu valide rapidement :) )

@+

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 17 févr. 2014, 22:40
par Géryko
Bonsoir moogli,

Je n'ai pas dû bien m'expliquer.
Ton exemple simpliste ne représente pas ce que je voudrais faire. Je m'explique autrement.

Mes pages privées ont pour login : abcde et pour mot de passe : wxyz.
Je voudrais qu'un visiteur qui me fournit son N° de Sécu (via un petit formulaire) accède aux
pages privées en transmettant automatiquement le login : abcde et le mot de passe : wxyz.
(sans avoir pris connaissance de abcde et de wxyz)
Comment transmettre le login : abcde et le mot de passe : wxyz dans mon programme ?
(sans la boîte de dialogue login/pw du serveur à htaccess )
'
Remarque : Le N° de Sécu est un exemple simple compréhensible par tous. C'est un cas d'école.
En fait il s'agit de codes personnalisés d'une grande entreprise.
Merci

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 18 févr. 2014, 08:13
par moogli
Si tu as une relation quelconque code -> utilisateur / mot de passe un "select" est suffisant.
Donc
1/ vérifier que le champs "code" est bien indiquer
2/ vérifier en base (vu le volume je suppose SGBD et pas autre chose) que ce cod existe et récupérer les données associées
3/ mettre en session les informations permettant de savoir que la personne est connecté + les infos qui sont mise dans le formulaire de connexion actuel.

Tu donne des infos qui ne correspondent pas a ce que tu veux on ne peux que supposer.
Ce type de système est forcément baser sur session ou cookie.
Il faut savoir comment une personne est "déterminée" connectée à partir de la ce que tu demande relativement simple (ce que j'ai mis au dessus).
Ce travail on ne peux le faire pour toi et on ne peux que présupposer ce que tu veux. Ce qui au final releve un peu de la sf mais on a pas trop le choix.

Pense a indexer correctement le champs qui contient le numéro sinon ça va être la cata côté performance ;)

@+

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 18 févr. 2014, 12:01
par Géryko
Bonjour moogli,

- Sans utiliser htaccess, avec les sessions, je sais faire.
- 1), 2) et 3) que tu m'as indiqués, je sais faire.
Mais je voudrais CONSERVER et UTILISER la protection htaccess et le login/pw "abcde/wxyz".
Donc me il reste à transmettre "abcde/wxyz" à mon serveur apache htaccess sans
que celui-ci m'ait envoyé la demande d' "authentification requise".
'
Ou alors on pourrait envisager, dès la réception de la demande d' "authentification requise",
une réponse automatique instantanée ? Sans avoir à saisir "abcde/wxyz"
-
Hier soir sur l'internet, j'ai vu un problème similaire. Quelqu'un qui voulait "sauter" l'étape
"authentification requise". Ce serait impossible, voire trop compliqué ?
Merci

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 18 févr. 2014, 15:15
par Berzemus
Oufti, que de confusion, que d'incompréhension :shock:

Mais tout ca commence a s'éclaircir:

"Je ne peux gerer 30.000.000 de comptes utilisateurs [potentiels]"
Alors, c'est clair que si tu te limites a .htaccess et l'authenfitication basique pour protéger un répertoire, c'est foutu (outre le fait que c'est obsolète, mais bon, php4 l'est aussi, on reste dans le même jus).

"Je veux protégér un répertoire avec apache, mais avec .htaccess, et sans génerer d'avance chaque utilisateur potentiel"
Oh, apache ne manque pas de moyens: LDAP (mod_ldap), SQL (mod_dbd), Fichiers DBM (mod_dbm) et simple fichiers passwd (mod_authn_file) pour ne citer que les plus communs. Avec une DB, un LDAP ou encore un fichier il est facile de génerer, au gré des inscriptions, de nouveaux accès, et de les gérer (mise a jour mot de passe, regéneration en cas de mot de passe perdu, etc..). Bref, le truc standard pour un site avec des comptes utilisateurs.

Bon, un site PHP qui utilise apache pour gérer les accès, c'est rare (on le fait directement dans php avec une DB), mais c'est possible.

"Je ne veux génerer/gérer aucun compte utilisateur, mais je veux limiter l'accès qu'a ceux que j'ai décidé qu'ils peuvent"
Ben, soit ils ont tous le même (bonjour la sécurité), soit tu peux passer par mod_ssl, et utiliser les certificats pour autoriser l'accès. C'est fort simple, il suffit de génerer un certificat client, le diffuser a tous les utilisateurs potentiels, et seulement les utilisateurs qui ont ce certificat peuvent avoir accès au pages concernées. Il est aussi possible de créer un certificat par utilisateur (plus sécure) mais c'est plus de boulot. Cela demande de s'y connaître un peu par contre, autant en apache qu'en openssl.


Je ne reagis pas a l'idée de la sécu: c'est un bricolage vain basé sur une incomprehension du fonctionnement d'apache.

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 19 févr. 2014, 22:59
par Géryko
Bonsoir Berzemus,

Désolé mais pour l'instant je ne suis que débutant du haut de mes 71 ans.
Ce que tu me proposes est un peu trop fort pour moi, pour l'instant. J'y vais petit à petit.

Ne sachant pas transmettre automatiquement login et Pass à haccess, j'ai trouvé un compromis
qui répond à peu près à ce que je voulais faire, même si la sécurité est mise de côté.
En fait, je veux restreindre l'accès pour le principe, (un exercice) mais je pourrais tout laisser public.
Pour ceux que cela intéresse, voici sommairement comment j'ai fait.
'
1) j'envoie un petit formulaire au "client". Il pourra y entrer son identifiant d'entreprise.
(N° de Sécu dans le cas d'école cité ci-dessus)
2) le client ne dispose que de 3 essais pour entrer son identifiant d'entreprise.
(au delà il sera bloqué pour la session, n'aura accès qu'aux pages publiques)
3) je vérifie la cohérence et l'existence de son identifiant d'entreprise.
( 99,9 % de probabilités que ce soit un vrai "client".)
4) si le test est concluant, je lui envoie (en clair) login/Pass (abcde et wxyz de htaccess)
5) il peut alors cliquer le lien d'une page du "domaine" privé.
6) la fenêtre "authentification requise" s'ouvre alors que ma réponse se trouve encore en
arrière plan.
7) il peut donc saisir les données que je lui ai transmises sans les avoir notées.

Si quelqu'un sait transmettre automatiquement, je suis toujours preneur.
Merci et bonsoir à tous.
Géry

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 21 févr. 2014, 15:09
par Aureusms
Pourquoi ne pas transmettre l'identifiant et le mot de passe par défaut avec un champ "hidden" à ajouter dans le formulaire? Ils seront les mêmes pour tout le mode c'est bien cela ?
...
<input type="hidden" name="identifiant" value="abcde" >
<input type="hidden" name="motDePasse" value="wxyz" >
<input type="texte" name="numeroDeSecurite" value="Indiquez votre numéro de Sécurité" >
...

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 21 févr. 2014, 17:02
par Géryko
Bonjour Aureusms,

Oui, bonne idée, je n'y avais pas pensé mais dans ce cas :

1) Je transmets identifiant et M de P dans mon htlm à tous les coups ?
Si on affiche "le source" on pourra donc les voir quelque part ?
Avant de les transmettre, je veux m'assurer qu'il s'agit d'un véritable "Assuré Social" (dans mon exemple)
Pour l'instant je ne sais pas faire du https ou masquer ces 2 paramètres.
Même si je savais le faire, resterait la recopie de ces paramètres dans "authentification requise" (en Java script ?)
pour que la connexion soit automatique et transparente.

2) Si je lui transmets directement identifiant et M de P, je sais m'assurer qu'il s'agit d'un véritable "Assuré Social"
( en java script) mais il est obligé de les "taper" manuellement dans la fenêtre "authentification requise".
Chose que je voudrais éviter.
Merci encore
Géry

Re: Un identifiant et mot de passe à 30 000 000 clients.

Posté : 22 févr. 2014, 21:38
par Aureusms
Si tu sais t'assurer qu'il s'agit de la bonne personne, purquoi ne pas lui faire cliquer quelque part pour validation et transmettre dans le même temps l'identifiant et le mot de passe ?