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

Contribuez Discussion :

[SRC] Encoder des données en JavaScript


Sujet :

Contribuez

  1. #1
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut [SRC] Encoder des données en JavaScript
    But de la source : Eviter que des gens trop curieux puissent lire dans la source des données en clair. Bien sur, cette protection ne bloquent pas un développeur mais c'est toujours mieux que rien...

    Méthode :
    - Encoder les données cotés serveurs (inspirer vous du code javascript encode)
    - Les décoder en javascript avec unencode lorsqu'elle deviennent nécéssaire

    Code html : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <html>
        <body>
            <script>
                function unencode (txt) {
                    var chars=[];
                    for (var i=0; i<txt.length; i+=3) {
                        var tmp = (txt.substr(i, 3));
                        while (tmp.length>1 && tmp.substr(0,1)=="0") {
                            tmp = tmp.substr(1);
                        }
                        chars.push(tmp);
                    }
                    var evalTerm="String.fromCharCode(" + chars.join(',') + ")";
                    return unescape(eval(evalTerm))
                }
     
                function encode (txt) {
                    if (txt=="") { return ""; }
                    txt = escape(txt);
                    var code = txt.charCodeAt(0)
                    while(code.length<3) {code = ("0"+code);}
                    for (var i=1; i<txt.length; i++) {
                        var tmp = (""+txt.charCodeAt(i));
                        while (tmp.length<3) { tmp = ("0"+tmp); }
                        code += (tmp);
                    }
                    return code;
                }
                
                function tbText_onchange(o) {
                    document.getElementById("lCode").innerHTML=encode(o.value);
                    var lText = document.getElementById("lText")
                    lText.innerHTML="";
                    lText.appendChild(document.createTextNode(unencode(encode(o.value))))
                }
            </script>
            <textarea id="tbText" style="width: 90%; wrap: hard;" onchange="tbText_onchange(this)"></textarea>
            <font size="-1">
                <div id="lCode" style="width: 90%; wrap: hard;"></div>
                <div id="lText" style="width: 90%; wrap: hard;"></div>
            </font>
        </body>
    </html>
    L'encodage est du type suivant :
    ? ==> ### (Char ==> 3 chiffres)
    Ces trois chiffres sont la valeur ASCII du caractère en question
    Si cela devait s'ecrire en moins de 3 chiffres, on ajoute des zéros devant (ex: 097)

    Le curieux sera vite rebuté par une chaine de caractère telle
    120023098055135253032065087168241

    Pour encore plus de protection caser cette chaine en morceau dans un CSS bidon et recomposer la ensuite (mais la, allez voir du coté de JavaTwister )
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Au fait, je reste convaincu que cette méthode n'est pas, et ne seras jamais la plus efficace...

    Une version plus solide me semble prendre forme ainsi :
    serveur :
    - inscrire dans la page web une donnée variable à inscrire dans le cookie, la stocker aussi dans la session
    page locale :
    - inscription d'une donnée recue de la page web dans un cookie
    - envoi xhr au serveur pour récupérer les données
    serveur :
    - vérrifer le cookie et la session
    - en cas de réussite, envoyer la donnée demandée
    page locale :
    - reception de la donnée
    - ne pas mettre la donnée autre part que dans du JS avant l'instant précis de sa nécéssité, puis retirer cettte donnée de la page dès qu'elle devient obselète
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/02/2014, 15h55
  2. Encoder des données en JSON
    Par zeitoun69 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2012, 22h14
  3. [AJAX] encodé des donnés envoyé par POST
    Par stc074 dans le forum AJAX
    Réponses: 2
    Dernier message: 19/07/2009, 18h00
  4. Encoder des données d'une Query
    Par Inspirate dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/07/2007, 14h46
  5. [PHP-JS] afficher des donnée php dans popup javascript
    Par speedylol dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/04/2006, 17h05

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