Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, questions/réponses pour les FAQ, sources et autres ressources pour la rubrique Web ainsi que ses sous-rubriques.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/04/2007, 11h56   #1
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
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 :
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
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 17h58   #2
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
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
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h35.


 
 
 
 
Partenaires

Hébergement Web