11
votes

Pourquoi bing obscurcisse-t-il leur JavaScript?

Je surfais sur le Web, comme d'habitude et je voulais jeter un coup d'œil à Source Bing Code parce que j'étais curieux et je voulais savoir ce qu'ils utilisaient pour rendre leur image se faner. J'ai été surpris par ce qui ne pouvait être qualifié que par la ligne suivante:

mur saint de texte!

Et cela m'a fait me demander s'il y a un avantage à obscurcer votre (x) HTML, CSS et Javascript comme celui-ci? Pour réduire la taille du fichier peut-être?


EDIT: Après avoir regardé autour de vous, j'ai réalisé que c'était une pratique assez courante. Jamais le regardé d'un point de vue de minécrification avant!


0 commentaires

11 Réponses :


1
votes

Oui, réduction de la taille du fichier.


0 commentaires

4
votes

La taille du fichier serait certainement un avantage, tellement que, par exemple, gmail lui-même, non seulement cela, mais aussi zip son contenu.


0 commentaires

7
votes

2 raisons principales d'obscurcir votre code:

  • Réduisez la taille totale du fichier (comme vous l'avez mentionné) si vous remplacez une fonction appelée «CallThisfunctionandreturnanarray» avec 'C' - Vous avez enregistré de nombreux caractères dans votre fichier.

  • Protégez la propriété intellectuelle - tandis que si cela est réaliste est défini sur une défratable, il s'agit d'une justification commune de le faire. Vous pouvez contourner cela avec de bons outils ou si vous êtes vraiment intelligent.


1 commentaires

Ce n'est pas discutable. Obfuscant JavaScript est une perte de temps. Si vous êtes javascript est intéressant, quelqu'un va ingénierie ingénieur. Ce n'est pas si difficile.



31
votes

Ils ne sont pas obscurcissants. Ils sont minifiant afin de réduire la bande passante utilisée par les millions de demandes qu'ils voient chaque jour.

L'objectif de JavaScript et CSS minéculation est toujours de préserver la qualités opérationnelles du code Tout en réduisant son octet général empreinte (à la fois en termes bruts et après gzipping, comme la plupart des JavaScript et CSS servi à partir de serveurs Web de production est gzippé dans le cadre du protocole HTTP).

Vous pourriez également être intéressé par la lecture de Yahoo! User Interface Blog Post intitulé "Minification c. Obfuscation" .


7 commentaires

Si c'était la réponse sélectionnée, il convient de noter Peter's [ Stackoverflow.com/users/131858/Peter] Réponse [ Stackoverflow.com/questions/1070514/ ... qu'il ne faut pas tenter de écrire un code de telle manière, mais cela devrait être fait comme un type de processus automatisé, ou dans le cadre de la déplacement du code dans la production.


Cela ne répond pas à la question que ce soit. Bien que ce soit une bonne réponse à une question comme «Qu'est-ce que MS est en train de faire à leur JavaScript Bing? Cela ne fait rien à répondre 'si vous obfusez votre JavaScript?


@ADAM: Le titre de la question n'est pas très précis. Ma réponse parle à ce que l'auteur voulait réellement demander. L'auteur se demandait pourquoi Microsoft obtiendrait son code JavaScript. J'ai souligné qu'ils ne sont pas obscurcissants leur code intentionnellement, mais plutôt minifiant pour un souci de vitesse. Je pense que cela répond à sa question de manière adéquate.


J'ai mis à jour le titre pour refléter plus précisément la question et cette réponse acceptée. J'espère que cela pourra aider...


Nice, a plus de sens maintenant :-)


Dans mon expérience, la minibation réduit à peine la taille du tout, et si vous utilisez GZIP (qui compresse beaucoup plus), la différence entre normal + gzipped et minifiée + gzipped est négligeable.


@Disgruntledghat: Si vous êtes Google ou Microsoft, il ajoute toujours. Pour les sites Web "normaux", GZIP est généralement beaucoup, mais selon l'article I lié, Minify + GZIP a montré une réduction de 30% de taille que la GZIP. Je n'appellerais pas ce négligeable.



1
votes

oui. La réduction de la taille du fichier diminue non seulement la durée de téléchargement, mais également la durée d'analyse, qui est très utile sur certains navigateurs (en particulier le diable-engendré IE6).

Ceci veut probablement de la mise en valeur de la minécution.


0 commentaires

2
votes

Il y a un avantage absolument à cela. Il y a quelque chose d'important à noter, cependant. Il n'y a aucune raison de coder comme ça. Après avoir fini de faire quelque chose (et que vous écrivez sous une bonne forme lisible), utilisez un mini-insert pour éliminer l'espace blanc inutile et tel. Pour les fichiers plus gros, cela peut grandement diminuer les temps de charge.


1 commentaires

La simple pensée de coder comme ça me donne des frissons!



2
votes

Je vais répondre à cette "Obfuscation", ce n'est pas le but dans ces cas, mais bande passante . Si vous servez de contenu cachable à un tel taux de réduction de la taille de la page d'accueil serait bénéfique, alors il est logique de le faire.

Quant à l'obfuscation pour diriger les yeux indiscrets - Non. Ne faites pas cela.


0 commentaires

1
votes

Je dessinerais une différence entre l'optimisation pour réduire la taille du fichier et l'obscurcissement avec le but prévu de prévenir (ou du moins de rendre dur) ingénierie inverse. En outre, Google, par exemple, a un "compilateur" qui étend javascript pour inclure un système de type avancé et similaire; Et ce code étendu est alors "compilé" dans JavaScript régulier. Évidemment, il est logique de créer ce code généré de manière optimisée - il n'est pas nécessaire de le rendre maintenu.


0 commentaires

1
votes

Je parierais la raison principale pour laquelle ils le font ceci est de réduire la taille du fichier. Les fichiers plus petits permettent à la page la charge plus rapidement.

obscurcissement n'est pas aussi important. En outre, il peut faire de la peine de déboguer, en fonction de la façon dont vous le faites.

La vitesse est tout à la recherche.


0 commentaires

1
votes

Et cela m'a fait me demander s'il y a un avantage à obscurcer votre (x) HTML, CSS et Javascript comme celui-ci? Pour réduire la taille du fichier peut-être?

Obfuscation est légèrement différent d'une autre technique commune avec des fichiers JavaScript, minécrification. La mention est courante avec JavaScript puisque la taille du fichier, qui, avec des fichiers volumineux, peut réduire considérablement leur taille (puisque les grands fichiers JavaScript contiennent souvent de nombreux commentaires, des pauses de la ligne, des espaces inutiles, etc., qui peuvent être supprimés pour réduire la taille de la taille de la taille. le script).

Obfuscation, d'autre part, est également davantage sur dissimulant votre code des autres, en modifiant les noms de variables aux autres qui sont obscur, ou qui suppriment la signification des fichiers JavaScript. Cependant, en faisant cela, cela réduit souvent la taille du fichier, car les noms variables sont souvent beaucoup plus courts que ceux du fichier d'origine. Il s'agit d'une technique courante pour rendre plus difficile pour que d'autres de copier un code, et c'est plus sur la protection du code qui est évidemment beaucoup plus facilement accessible par rapport à d'autres plates-formes.

faire à la fois de minécrification et d'obfuscation sont avantageux pour vos scripts, car ils réduisent la taille de vos fichiers JavaScript, ce qui réduit le temps nécessaire pour charger vos pages et permet également aux autres d'inverser l'ingénieur (s'il s'agit d'un Problème pour votre code).

Toutefois: Notez que c'est pas infaillible - il existe certains outils qui existent, ce qui facilite le renversement du code ingénieur ingénieur, de sorte qu'il ne le rend pas à 100% Coffre-fort des autres qui veulent vraiment jeter un coup d'oeil à la façon dont vos scripts fonctionnent.


0 commentaires

2
votes

Seulement pour réduire la taille, et uniquement sur les grands modules. Un gain beaucoup plus important peut être atteint en utilisant GZIP.

Si vous utilisez un code tiers, vous pouvez être tenu de quitter leur copyright / ses commentaires de licence intacts lorsque vous vous miniez. Les gens oublient souvent de faire cela. Vous voudrez probablement laisser vos propres commentaires de copyright intacts aussi.


0 commentaires