Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Goiffon
twigster wrote:
Quelqu'un a-t-il une bonne expérience avec un soft servant à masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :)
Autant le dire tout de suite, il n'y a aucune méthode efficace pour protéger du contenu publié sur le www.
Il existe quelques méthodes de codages de script Javascript (Microsoft proposait un outil gratuit dans l'temps), mais elles sont quasiment toutes vouées à l'échec (les décodeurs sont disponibles de partout), d'autant qu'elles compliquent considérablement la maintenance.
Et sérieusement, vu tout le code JavaScript disponible sur l'Internet, je n'ai jamais été concronté à des raisons fondées de vouloir cacher le contenu JavaScript de ses pages. Malheureusement cela recelle plus souvent de graves prb de sécurité (si on voit mon JavaScript on va comprendre comment pouvoir s'authentifier en 2s)
twigster wrote:
Quelqu'un a-t-il une bonne expérience avec un soft servant à
masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de
plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore
mieux :)
Autant le dire tout de suite, il n'y a aucune méthode efficace pour
protéger du contenu publié sur le www.
Il existe quelques méthodes de codages de script Javascript (Microsoft
proposait un outil gratuit dans l'temps), mais elles sont quasiment
toutes vouées à l'échec (les décodeurs sont disponibles de partout),
d'autant qu'elles compliquent considérablement la maintenance.
Et sérieusement, vu tout le code JavaScript disponible sur l'Internet,
je n'ai jamais été concronté à des raisons fondées de vouloir cacher le
contenu JavaScript de ses pages. Malheureusement cela recelle plus
souvent de graves prb de sécurité (si on voit mon JavaScript on va
comprendre comment pouvoir s'authentifier en 2s)
Quelqu'un a-t-il une bonne expérience avec un soft servant à masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :)
Autant le dire tout de suite, il n'y a aucune méthode efficace pour protéger du contenu publié sur le www.
Il existe quelques méthodes de codages de script Javascript (Microsoft proposait un outil gratuit dans l'temps), mais elles sont quasiment toutes vouées à l'échec (les décodeurs sont disponibles de partout), d'autant qu'elles compliquent considérablement la maintenance.
Et sérieusement, vu tout le code JavaScript disponible sur l'Internet, je n'ai jamais été concronté à des raisons fondées de vouloir cacher le contenu JavaScript de ses pages. Malheureusement cela recelle plus souvent de graves prb de sécurité (si on voit mon JavaScript on va comprendre comment pouvoir s'authentifier en 2s)
O.L.
Le 16/08/2006, twigster a dit :
Quelqu'un a-t-il une bonne expérience avec un soft servant à masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :)
merci
Un obfuscator comme pour le code Java, c'est à dire qui réécrit ton code de manière moins lisible, je ne connais pas. Mais une solution serait peut être, au lieu de réécrire ton code, de l'encoder, pour qu'il n'apparraisse plus en clair dans ton code source HTML. La seule condition c'est qu'il faut mieux que ton code soit rassemblé à un endroit dans ta page, s'il y a des petits bouts un peu partout, dans des onclick notamment, ça sera un peu lourd à mettre en place.
Exemple en Base64 :
<script>
//************ LE CODE POUR GERER LE BASE64 ****************//
var END_OF_INPUT = -1;
var base64Chars = new Array( 'A','B','C','D','E','F','G','H', 'I','J','K','L','M','N','O','P', 'Q','R','S','T','U','V','W','X', 'Y','Z','a','b','c','d','e','f', 'g','h','i','j','k','l','m','n', 'o','p','q','r','s','t','u','v', 'w','x','y','z','0','1','2','3', '4','5','6','7','8','9','+','/' );
var reverseBase64Chars = new Array(); for (var i=0; i < base64Chars.length; i++){ reverseBase64Chars[base64Chars[i]] = i; }
var base64Str; var base64Count; function setBase64Str(str){ base64Str = str; base64Count = 0; } function readBase64(){ if (!base64Str) return END_OF_INPUT; if (base64Count >= base64Str.length) return END_OF_INPUT; var c = base64Str.charCodeAt(base64Count) & 0xff; base64Count++; return c; } function readReverseBase64(){ if (!base64Str) return END_OF_INPUT; while (true){ if (base64Count >= base64Str.length) return END_OF_INPUT; var nextCharacter = base64Str.charAt(base64Count); base64Count++; if (reverseBase64Chars[nextCharacter]){ return reverseBase64Chars[nextCharacter]; } if (nextCharacter == 'A') return 0; } return END_OF_INPUT; }
function ntos(n){ n=n.toString(16); if (n.length == 1) n="0"+n; n="%"+n; return unescape(n); }
function decodeBase64(str){ setBase64Str(str); var result = ""; var inBuffer = new Array(4); var done = false; while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){ inBuffer[2] = readReverseBase64(); inBuffer[3] = readReverseBase64(); result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); if (inBuffer[2] != END_OF_INPUT){ result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2]
//************* LE CODE QUI DECODE LE CODE ... :) *******************//
var leCodeJS = 'YWxlcnQoJ2hlbGxvIHdvcmxkJyk7';
code = decodeBase64(leCodeJS);
alert('le code JS à exécuter est : '+code); eval(code);
</script>
La suite de caractère contenue dans leCodeJS correspond à "alert('hello world')" encodé en Base64. D'abord on le décode, puis on l'affiche, puis on l'exécute avec eval().
Pour encoder tes scripts en Base64 : http://ostermiller.org/calc/encode.html
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Le 16/08/2006, twigster a dit :
Quelqu'un a-t-il une bonne expérience avec un soft servant à
masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de
plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :)
merci
Un obfuscator comme pour le code Java, c'est à dire qui réécrit ton
code de manière moins lisible, je ne connais pas.
Mais une solution serait peut être, au lieu de réécrire ton code, de
l'encoder, pour qu'il n'apparraisse plus en clair dans ton code source
HTML. La seule condition c'est qu'il faut mieux que ton code soit
rassemblé à un endroit dans ta page, s'il y a des petits bouts un peu
partout, dans des onclick notamment, ça sera un peu lourd à mettre en
place.
Exemple en Base64 :
<script>
//************ LE CODE POUR GERER LE BASE64 ****************//
var END_OF_INPUT = -1;
var base64Chars = new Array(
'A','B','C','D','E','F','G','H',
'I','J','K','L','M','N','O','P',
'Q','R','S','T','U','V','W','X',
'Y','Z','a','b','c','d','e','f',
'g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v',
'w','x','y','z','0','1','2','3',
'4','5','6','7','8','9','+','/'
);
var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
reverseBase64Chars[base64Chars[i]] = i;
}
var base64Str;
var base64Count;
function setBase64Str(str){
base64Str = str;
base64Count = 0;
}
function readBase64(){
if (!base64Str) return END_OF_INPUT;
if (base64Count >= base64Str.length) return END_OF_INPUT;
var c = base64Str.charCodeAt(base64Count) & 0xff;
base64Count++;
return c;
}
function readReverseBase64(){
if (!base64Str) return END_OF_INPUT;
while (true){
if (base64Count >= base64Str.length) return END_OF_INPUT;
var nextCharacter = base64Str.charAt(base64Count);
base64Count++;
if (reverseBase64Chars[nextCharacter]){
return reverseBase64Chars[nextCharacter];
}
if (nextCharacter == 'A') return 0;
}
return END_OF_INPUT;
}
function ntos(n){
n=n.toString(16);
if (n.length == 1) n="0"+n;
n="%"+n;
return unescape(n);
}
function decodeBase64(str){
setBase64Str(str);
var result = "";
var inBuffer = new Array(4);
var done = false;
while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
&& (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
inBuffer[2] = readReverseBase64();
inBuffer[3] = readReverseBase64();
result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >>
4));
if (inBuffer[2] != END_OF_INPUT){
result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2]
//************* LE CODE QUI DECODE LE CODE ... :) *******************//
var leCodeJS = 'YWxlcnQoJ2hlbGxvIHdvcmxkJyk7';
code = decodeBase64(leCodeJS);
alert('le code JS à exécuter est : '+code);
eval(code);
</script>
La suite de caractère contenue dans leCodeJS correspond à "alert('hello
world')" encodé en Base64. D'abord on le décode, puis on l'affiche,
puis on l'exécute avec eval().
Pour encoder tes scripts en Base64 :
http://ostermiller.org/calc/encode.html
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Quelqu'un a-t-il une bonne expérience avec un soft servant à masquer/obfusquer du code javascript?
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :)
merci
Un obfuscator comme pour le code Java, c'est à dire qui réécrit ton code de manière moins lisible, je ne connais pas. Mais une solution serait peut être, au lieu de réécrire ton code, de l'encoder, pour qu'il n'apparraisse plus en clair dans ton code source HTML. La seule condition c'est qu'il faut mieux que ton code soit rassemblé à un endroit dans ta page, s'il y a des petits bouts un peu partout, dans des onclick notamment, ça sera un peu lourd à mettre en place.
Exemple en Base64 :
<script>
//************ LE CODE POUR GERER LE BASE64 ****************//
var END_OF_INPUT = -1;
var base64Chars = new Array( 'A','B','C','D','E','F','G','H', 'I','J','K','L','M','N','O','P', 'Q','R','S','T','U','V','W','X', 'Y','Z','a','b','c','d','e','f', 'g','h','i','j','k','l','m','n', 'o','p','q','r','s','t','u','v', 'w','x','y','z','0','1','2','3', '4','5','6','7','8','9','+','/' );
var reverseBase64Chars = new Array(); for (var i=0; i < base64Chars.length; i++){ reverseBase64Chars[base64Chars[i]] = i; }
var base64Str; var base64Count; function setBase64Str(str){ base64Str = str; base64Count = 0; } function readBase64(){ if (!base64Str) return END_OF_INPUT; if (base64Count >= base64Str.length) return END_OF_INPUT; var c = base64Str.charCodeAt(base64Count) & 0xff; base64Count++; return c; } function readReverseBase64(){ if (!base64Str) return END_OF_INPUT; while (true){ if (base64Count >= base64Str.length) return END_OF_INPUT; var nextCharacter = base64Str.charAt(base64Count); base64Count++; if (reverseBase64Chars[nextCharacter]){ return reverseBase64Chars[nextCharacter]; } if (nextCharacter == 'A') return 0; } return END_OF_INPUT; }
function ntos(n){ n=n.toString(16); if (n.length == 1) n="0"+n; n="%"+n; return unescape(n); }
function decodeBase64(str){ setBase64Str(str); var result = ""; var inBuffer = new Array(4); var done = false; while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){ inBuffer[2] = readReverseBase64(); inBuffer[3] = readReverseBase64(); result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); if (inBuffer[2] != END_OF_INPUT){ result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2]
//************* LE CODE QUI DECODE LE CODE ... :) *******************//
var leCodeJS = 'YWxlcnQoJ2hlbGxvIHdvcmxkJyk7';
code = decodeBase64(leCodeJS);
alert('le code JS à exécuter est : '+code); eval(code);
</script>
La suite de caractère contenue dans leCodeJS correspond à "alert('hello world')" encodé en Base64. D'abord on le décode, puis on l'affiche, puis on l'exécute avec eval().
Pour encoder tes scripts en Base64 : http://ostermiller.org/calc/encode.html
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
O.L.
O.L. a émis l'idée suivante :
function decodeBase64(str){ setBase64Str(str); var result = ""; var inBuffer = new Array(4); var done = false; while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){ inBuffer[2] = readReverseBase64(); inBuffer[3] = readReverseBase64(); result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); if (inBuffer[2] != END_OF_INPUT){ result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2]
2)); // problème potentiel avec les newsreaders if (inBuffer[3] != END_OF_INPUT){
Hum ^^ Perso mon newsreader m'affiche une des lignes du code que j'ai donné en tant que quotage alors que ça n'en est pas, donc je redonne la ligne :
result += ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Etienne SOBOLE
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Pour quoi faire ca !
Tu n'as pas été content de trouver des sources sur le net lorsque tu as appris a faire du javascript ? Tu ne veux pas fournir ta contribution au web ? Est ce qu'on peux avoir un aperçu du merveilleux travail que tu as réalisé en javascript et qui necessite une protection maximale ?
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :) Ben oui, tant qu'a faire si tu peux encore profiter un peu du travail des
autres c'est pas plus mal, pas vrai ???
moi ce que j'en dis... Etienne
Le but est bien sûr d'empêcher le premier venu de pomper un travail de
plusieurs semaines...
Pour quoi faire ca !
Tu n'as pas été content de trouver des sources sur le net lorsque tu as
appris a faire du javascript ?
Tu ne veux pas fournir ta contribution au web ?
Est ce qu'on peux avoir un aperçu du merveilleux travail que tu as réalisé
en javascript et qui necessite une protection maximale ?
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux
:)
Ben oui, tant qu'a faire si tu peux encore profiter un peu du travail des
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Pour quoi faire ca !
Tu n'as pas été content de trouver des sources sur le net lorsque tu as appris a faire du javascript ? Tu ne veux pas fournir ta contribution au web ? Est ce qu'on peux avoir un aperçu du merveilleux travail que tu as réalisé en javascript et qui necessite une protection maximale ?
Si l'outil n'est pas online c'est mieux et si c'est gratuit encore mieux :) Ben oui, tant qu'a faire si tu peux encore profiter un peu du travail des
autres c'est pas plus mal, pas vrai ???
moi ce que j'en dis... Etienne
Lyle
"Etienne SOBOLE" a écrit dans le message de news:44eaa947$0$29484$
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Pour quoi faire ca !
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne copier le code pour faire la même chose et donc piquer des clients/visiteurs ? je comprend parfaitement Twingster, j'écris moi même des jeux en javascript, certains sont en travaux depuis des mois vu la complexité du truc et que je fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un ptit gars vienne pomper mon code pour créer une copie de mon jeu !
Lyle
"Etienne SOBOLE" <etienne-nospam@tlk.fr> a écrit dans le message de
news:44eaa947$0$29484$626a54ce@news.free.fr...
Le but est bien sûr d'empêcher le premier venu de pomper un travail de
plusieurs semaines...
Pour quoi faire ca !
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne
copier le code pour faire la même chose et donc piquer des clients/visiteurs
?
je comprend parfaitement Twingster, j'écris moi même des jeux en javascript,
certains sont en travaux depuis des mois vu la complexité du truc et que je
fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un
ptit gars vienne pomper mon code pour créer une copie de mon jeu !
"Etienne SOBOLE" a écrit dans le message de news:44eaa947$0$29484$
Le but est bien sûr d'empêcher le premier venu de pomper un travail de plusieurs semaines...
Pour quoi faire ca !
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne copier le code pour faire la même chose et donc piquer des clients/visiteurs ? je comprend parfaitement Twingster, j'écris moi même des jeux en javascript, certains sont en travaux depuis des mois vu la complexité du truc et que je fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un ptit gars vienne pomper mon code pour créer une copie de mon jeu !
Lyle
Etienne SOBOLE
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne copier le code pour faire la même chose et donc piquer des clients/visiteurs ?
mouai, c'est comme les brevets logiciel, c'est pas gagné ! On est pas dans un monde parfais ;)
je comprend parfaitement Twingster, j'écris moi même des jeux en javascript, certains sont en travaux depuis des mois vu la complexité du truc et que je fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un ptit gars vienne pomper mon code pour créer une copie de mon jeu !
jeu style ogame?
Il ne faut pas être parano non plus !
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne
copier le code pour faire la même chose et donc piquer des
clients/visiteurs
?
mouai, c'est comme les brevets logiciel, c'est pas gagné !
On est pas dans un monde parfais ;)
je comprend parfaitement Twingster, j'écris moi même des jeux en
javascript,
certains sont en travaux depuis des mois vu la complexité du truc et que
je
fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un
ptit gars vienne pomper mon code pour créer une copie de mon jeu !
pour éviter la concurrence peut-être ? pour éviter qu'un ptit gars vienne copier le code pour faire la même chose et donc piquer des clients/visiteurs ?
mouai, c'est comme les brevets logiciel, c'est pas gagné ! On est pas dans un monde parfais ;)
je comprend parfaitement Twingster, j'écris moi même des jeux en javascript, certains sont en travaux depuis des mois vu la complexité du truc et que je fais ça dans mon temps libre.. une fois terminé, je ne voudrai pas qu'un ptit gars vienne pomper mon code pour créer une copie de mon jeu !