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 )