Qu'est-ce que CavalryLogger et en ai-je besoin?

je fais quelques optimisations sur un site que j'ai récemment repris. J'ai trouvé un script je ne reconnais pas: http://static.ak.fbcdn.net/rsrc.php/zo/r/V95Lkt_uLNB.js

Il pourrait être un facebook chose, et il y a quelques clés de journalisation de passe (que je ne suis pas trop vif sur)

il s'agit sans aucun doute du plus gros fichier demandé sur un chargement de page (87kb) donc si je peux m'en passer, cela va vraiment accélérer le chargement de page.

personne Ne savoir:

A) Ce que c'est

B) Ce que c'est pour

C) ce qu'il fait

D) puis-je faire sans elle

33
demandé sur Yeldar Kurmangaliyev 2010-11-15 23:39:24

7 réponses

Ok donc j'ai regardé la version embellie de ce code miniifié et j'ai noté ce qui suit:

Par lui-même ce sont un tas de fonctions d'utilité.

CavalryLogger ne fait rien avec ce fichier tout seul parce qu'il n'existe pas, ni n'est défini.

Le code en question concernant la clé de liaison:

function KeyEventController() {
  copy_properties(this, {
    handlers: {}
  });
  document.onkeyup = this.onkeyevent.bind(this, 'onkeyup');
  document.onkeydown = this.onkeyevent.bind(this, 'onkeydown');
  document.onkeypress = this.onkeyevent.bind(this, 'onkeypress');
}
copy_properties(KeyEventController, {
  instance: null,
  getInstance: function () {
    return KeyEventController.instance || (KeyEventController.instance = new KeyEventController());
  },
  defaultFilter: function (event, a) {
    event = $E(event);
    return KeyEventController.filterEventTypes(event, a) && KeyEventController.filterEventTargets(event, a) && KeyEventController.filterEventModifiers(event, a);
  },
  filterEventTypes: function (event, a) {
    if (a === 'onkeydown') return true;
    return false;
  },
  filterEventTargets: function (event, b) {
    var a = $E(event).getTarget();
    if (DOM.isNode(a, ['input', 'select', 'textarea', 'object', 'embed'])) if (a.type != 'checkbox' && a.type != 'radio' && a.type != 'submit') return false;
    return a.getAttribute('contentEditable') != 'true';
  },
  filterEventModifiers: function (event, a) {
    if (event.ctrlKey || event.altKey || event.metaKey || event.repeat) return false;
    return true;
  },
  registerKey: function (f, a, d, g) {
    if (d === undefined) d = KeyEventController.defaultFilter;
    var b = KeyEventController.getInstance();
    var c = b.mapKey(f);
    if (is_empty(b.handlers)) onleaveRegister(b.resetHandlers.bind(b));
    for (var e = 0; e < c.length; e++) {
      f = c[e];
      if (!b.handlers[f] || g) b.handlers[f] = [];
      b.handlers[f].push({
        callback: a,
        filter: d
      });
    }
  },
  keyCodeMap: {
    '[': [219],
    ']': [221],
    '`': [192],
    LEFT: [KEYS.LEFT, 63234],
    RIGHT: [KEYS.RIGHT, 63235],
    RETURN: [KEYS.RETURN],
    TAB: [KEYS.TAB],
    DOWN: [KEYS.DOWN, 63233],
    UP: [KEYS.UP, 63232],
    ESCAPE: [KEYS.ESC],
    BACKSPACE: [KEYS.BACKSPACE],
    DELETE: [KEYS.DELETE]
  }
});
copy_properties(KeyEventController.prototype, {
  mapKey: function (a) {
    if (typeof (a) == 'number') return [48 + a, 96 + a];
    if (KeyEventController.keyCodeMap[a.toUpperCase()]) return KeyEventController.keyCodeMap[a.toUpperCase()];
    var b = a.toUpperCase().charCodeAt(0);
    return [b];
  },
  onkeyevent: function (i, c) {
    c = $E(c);
    var d = null;
    var g = this.handlers[c.keyCode];
    var b, f, a;
    if (g) for (var h = 0; h < g.length; h++) {
      b = g[h].callback;
      f = g[h].filter;
      try {
        if (!f || f(c, i)) {
          var node = null;
          if (window.Parent && Parent.byTag && c.getTarget) node = Parent.byTag(c.getTarget(), 'a');
          user_action(node, 'key', c);
          a = b(c, i);
          if (a === false) return Event.kill(c);
        }
      } catch (e) {}
    }
    return true;
  },
  resetHandlers: function () {
    this.handlers = {};
  }
});

ce code vous permet de lier les clés aux callbacks, et inclut des noms plus lisibles pour les clés communes. Prendre pour exemple d'utilisation ici:

KeyEventController.registerKey('ESCAPE', Dialog._handleEscapeKey, a);

la clé ESCAPE est enregistrée pour faire disparaître les dialogues. handlers est aussi vide par défaut, si rien ne se passe jusqu'à ce que vous utilisez registerKey ou ajouter manuellement. Notez que c'est la seule instance de registerKey appelé.

il a aussi beaucoup de fonctions D'utilité AJAX. Ne peut pas vraiment envoyer quoi que ce soit à Facebook à partir de votre domaine de toute façon en raison de la même politique d'origine (sauf si vous avez modifié les permissions de sécurité, mais alors c'est de votre faute). Même chose avec les cookies.

il y a aussi un mangeur d'histoire, mais il utilise une iFrame donc il ne sera pas capable de le lire à partir de votre domaine de toute façon.

finalement le code de bouton j'ai trouvé est un iFrame, donc il n'aurait pas besoin de JS includes à moins que vous utilisiez javascript pour créer l'iFrame ou quelque chose.

Avec cela à l'esprit, je ne vois pas la nécessité d'inclure tout cela.

30
répondu onteria_ 2011-05-15 03:32:34

il semble que cela soit directement relié au fait d'avoir la fonctionnalité "comme ceci" sur une page. L'iframe que vous utilisez pour inclure le bouton 'Like' semble venir avec quelques scripts 'bonus'.

si vous me le demandez, c'est une autre bonne raison pour ne pas avoir Facebook intégré, il semble être logging keypresses, et ce n'est pas cool.

11
répondu mwotton 2010-12-03 06:48:27

une recherche rapide sur google ne fournit pas beaucoup de réponses - c'est une sorte de script de suivi d'événements pour Facebook, et j'ai vu un tweet et quelques messages sur le forum où les gens ont mentionné le désactiver et gagner un boost de vitesse - I penser vous pouvez vous en débarrasser en toute sécurité, au moins ça vaut la peine de l'essayer.

1
répondu Filipe 2010-11-15 22:48:47

c'est certainement de Facebook - l'un des nombreux fichiers de soutien pour FBML / API / etc.

si vous n'utilisez pas de fonctionnalités FB dans votre projet, supprimez simplement ce fichier.

si vous utilisez des fonctionnalités FB (Comme le bouton "J'aime"), vous ne devriez pas utiliser ce fichier (ou tout autre fichier avec des noms cryptés) directement non plus. Au lieu de cela

1) créer vide <div id="fb-root"></div> quelque part à la fin f votre page

2) comprend http://connect.facebook.net/en_US/all.js script dans votre page

3) suivez les instructions dehttp://developers.facebook.com/

0
répondu Guard 2011-05-16 10:10:36

quand L'IFRAME est chargée il appelle L'URI suivant:

https://www.facebook.com/plugins/like.php?api_key=[your_api_key]&channel_url=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D27%23cb%3Df39f390d40f7332%26domain%3D[your_TLD]%26origin%3Dhttp%253A%252F%252F[your_TLD]%252Ff72f1f9bea899e%26relation%3Dparent.parent&colorscheme=light&extended_social_context=false&href=[your_share_URI]&layout=button_count&locale=en_US&node_type=link&sdk=joey&send=false&show_faces=false&width=100

Dans les balises de script de cette page sont les appels suivants.

PluginAsyncLoader.load("**https:\/\/fbstatic-a.akamaihd.net\/rsrc.php\/v2\/yq\/r\/CNRdIwfy3yI.js**");
PluginAsyncLoader.ondemandjs = "**https:\/\/fbstatic-a.akamaihd.net\/rsrc.php\/v2\/yH\/r\/muz85bheueJ.js**";
0
répondu supert3d 2015-09-16 03:02:09

j'ai trouvé "calverly logger" dans un fichier que je n'ai pas téléchargé mais je l'ai vu télécharger juste en face de moi quand J'ai fermé Thunderbird (était en cours D'exécution Firefox derrière elle et il s'est montré là comme un téléchargement de fichier) donc je suis allé vérifier ce que c'était.

le fichier s'appelle: "See All.html" que j'ai trouvé étrange et inquiétant.

la tête du fichier contient le code suivant indiquant qu'il s'agit d'une fonction Facebook... Le logger de Calvery est mentionné près du bas du fichier (non montré ici). J'ai enlevé le html < près de la tête du fichier pour que vous puissiez voir le code... Pas sûr que ça va aider mais des idées...

// !DOCTYPE html 
html lang="en" id="facebook" class="no_js"

head
meta charset="utf-8" />

meta name="referrer" content="origin-when-crossorigin" id="meta_referrer" />

script> window._cstart=+new Date();</script><script>function envFlush(a)    {function b(c){for(var d in a)c[d]=a[d];}if(window.requireLazy){window.requireLazy(['Env'],b);}else{window.Env=window.Env||{};b(window.Env);}}envFlush({"ajaxpipe_token":"AXiYOZarFarwOff3","lhsh":"AAQFK_mp-","khsh":"0`sj`e`rm`s-0fdu^gshdoer-0gc^eurf-3gc^eurf;1;enbtldou;fduDmdldourCxO`ld-2YLMIuuqSdptdru;qsnunuxqd;rdoe-0unjdojnx-0unjdojnx0-0gdubi^rdbsduOdv-0`sj`e`r-0q`xm`r-0StoRbs`qhof-0mhoj^q`xm`r","timeslice_heartbeat_config":{"pollIntervalMs":33,"idleGapThresholdMs":60,"ignoredTimesliceNames":{"requestAnimationFrame":true,"Event listenHandler mousemove":true,"Event listenHandler mouseover":true,"Event listenHandler mouseout":true,"Event listenHandler scroll":true},"enableOnRequire":true},"shouldLogCounters":false,"timeslice_categories":{"react_render":true,"reflow":true}}); script> style> style>
0
répondu Don 2016-10-15 17:37:12

il est lié à un hacker de virus sur Facebook, envoyant des vidéos à tous les amis de la personne qui a été piraté. Si vous ouvrez une telle vidéo, vous aussi devenez piraté et tous vos amis obtiennent la vidéo aussi. N'ouvrez pas de vidéos ou de messages suspects, en particulier dans Messenger.

0
répondu NeilC 2018-01-29 21:14:12