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 :

Compteur-Index obfusqué avec réversibilité


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    cdp
    Inscrit en
    Décembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : cdp

    Informations forums :
    Inscription : Décembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Compteur-Index obfusqué avec réversibilité
    Bonjour à tous,

    Nous avons un outil maison en LAMP, qui possède une interface extranet.

    Les visiteurs de l'extranet consultent des fiches issues de la BD. Ces fiches ont un index (normal jusque-là).

    Mais il est utilisé dans les URL à plusieurs endroits, et il ne nous semble pas simple d'éviter de l'envoyer en GET.

    Ce qui est gênant c'est l'aspect indiscret de cet index / compteur, il donne en effet une indication sur le nombre de fiches et cela nous souhaiterions l'éviter.

    La solution envisagée est de garder du point de vue script PHP la gestion des fiches grâce à l'index en BD, mais d'afficher/utiliser dans les formulaires cet index de manière codée du genre MD5 pour que le comptage ne soit plus possible pour les utilisateurs.

    Il faut donc:
    - savoir comment coder cet index
    - faire en sorte que ce codage soit réversible (non pas comme MD5)
    - par conséquent il faut bien entendu que le résultat de l'encodage soit unique (UID Unique IDentifier...)

    Nous n'avons pas de solution sur étagère, d'où cette demande de contribution.

    Je reste à votre dispo pour plus de précisions,

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Modifier la base est exclue ?

    Tu pourrais par exemple rajouter un champs à ta base qui serais un index unique non numérique (par exemple générer un truc avec uniqid()). Libre à toi ensuite de garder ou non l'index numérique.

    Sinon ,une méthode rapide consisterait à utiliser base64_encode() et base64_decode();
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    cdp
    Inscrit en
    Décembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : cdp

    Informations forums :
    Inscription : Décembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Oui tout cela est effectivement applicable... mais pas user friendly si un utilisateur veut se servir de la référence.... m'enfin...

    je me demandais si il n'y avait pas moyen de faire plus court comme UID lorsque l'index n'en est "qu'à" 200.000 enregistrements.

    Du genre:
    'index' <=> 'index_codé'
    '0049999' <=> '12A3456'
    '0050000' <=> 'A1876MC'

    Bref plus court avec n'importe (chiffres et/ou caractères Alpha)... bref pas une fonction comme celle que tu cites.

    Pour répondre à la modif de la BD, pourquoi pas rajouter un champ, c'est peut-être la soluce.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Un base64_encode sur une id 123456789 (123M d'entrée ca commence à faire) ne donne une clé "que" de 12 caractères soit 3 caractère de plus que l'id. CA ne me parait pas si gênant pour un utilisateur.

    Pour 0050000 ca donne donc : MjA0ODA=
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Salut,
    Citation Envoyé par dchamot Voir le message
    Pour répondre à la modif de la BD, pourquoi pas rajouter un champ, c'est peut-être la soluce.
    Par exemple mettre la valeur de l'id en hexadécimal. Plus court, facilement calculable dans les deux sens, et beaucoup de gens ne sauront pas que 5C0E est en fait l'id 23566.

    EDIT : D'ailleurs ce n'est pas obligatoire de modifier la BD pour ça

Discussions similaires

  1. Index multiples avec TexShop
    Par cybzh dans le forum Bibliographies - Index - Glossaires
    Réponses: 2
    Dernier message: 11/04/2020, 12h52
  2. Réponses: 17
    Dernier message: 03/01/2008, 13h40
  3. [MySQL] fonction compteur de visite avec bdd sur onclick
    Par akara dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2007, 14h13
  4. Réponses: 3
    Dernier message: 15/02/2007, 09h54

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