Quel est le moyen le plus fiable pour masquer / usurper le référent en JavaScript?

Normalement, le référent est identifiable par:

  • JavaScript document.referrer
  • Les en-têtes de requête, par exemple PHP $_SERVER['HTTP_REFERER']

J'ai mis en place un Codepad démo qui montre ces propriétés, à des fins de test.

Exigences:

  1. L'original référent doit effectivement être caché, au moins pour tous les événements de la souris.
  2. En charge des navigateurs (au moins Chrome et Firefox).
  3. Autonome, sans aucun contenu externe (plug-ins, les bibliothèques, les pages de redirection, ...).
  4. Pas d'effets secondaires: les Liens pas être réécrit, les entrées de l'historique doit être préservé.

La solution sera utilisé pour masquer le référent en suivant un lien de <a href="url">.


Exacte description des cas d'utilisation

Comme décrit dans cette question sur les Webapps, des liens à Google de Recherche sont modifiés lors d'un clic. Par conséquent,

  1. Google est en mesure de suivre votre comportement de recherche (de la vie privée-- )
  2. La demande de la page est légèrement en retard.
  3. De la page liée ne peut pas suivre votre Google à la requête de recherche (de Confidentialité++ )
  4. Glisser/copier Url de ressembler à http://google.com/lotsoftrash?url=actualurl.

Je suis l'élaboration d'un Script (Firefox) /le Contenu du script (le Chrome) (code), qui supprime Google lien-mutilante de l'événement. En conséquence, les points 1, 2 et 4 sont traitées.

Le Point 3 de la demeure.

  • Chrome: <a >
  • Firefox: data-Uri. J'ai créé une approche plus sophistiquée de mettre en œuvre cette fonctionnalité pour la gauche - et moyen-clics, tout en continuant de l'application du point 4. Cependant, j'ai du mal avec le bouton droit sur la méthode.
  • FWIW, Facebook rediriger tous les liens externes à l.php?the_url_you_want_to_visit, pour s'assurer qu'aucune information personnelle n'est inclus dans le référent de l'attribut. Cela pourrait être un indice vers "il n'est pas possible". Leurs ingénierie détaillée note pourrait être d'intérêt.
  • La raison pour laquelle je veux pas utiliser des pages de redirection est 1) cliquez-Droit sur la copie sera de retour le lien de redirection (au lieu du réel). 2) Une page externe est en cause, ce qui réduit la vitesse de navigation. Voir ce script.
  • le <a rel= "nofollow" > servir le but? Il empêche efficacement les moteurs de recherche de donner trop d'importance à l'utilisateur de générer des liens tels que ceux sur les forums (que les gens mettent dans leurs signes)
  • Je pense qu'il y a une meilleure idée de rompre google code code qui remplace la plaine des liens avec leurs spyredirector
  • Qu'est-ce exactement faire de la lutte avec, concernant clique avec le bouton droit? La "ouvrir dans un onglet" menu contextuel de l'entrée? Je suis assez sûr que l'exigence 4 rend cela impossible à résoudre avec un script.
  • Sur contextmenu: masquer le référent, mais garder l'URL d'origine sur la copie. Il y a très peu, si ce n'est aucune des sources sur l'Internet pour résoudre ce problème. La créativité est sûrement nécessaire pour résoudre ce problème.
  • Il est possible de garder copie: jsfiddle.net/efa5Q (pour une raison quelconque, la copie de la commande utilise une méthode particulière). Cependant, les autres éléments de menu contextuel comme "enregistrer sous...", "envoyer" ou "ajouter un signet" va recevoir les données de l'url.
  • excellente question!
  • +1 -c'est une longue question. que ce soit pour de bonnes ou ad [sic] il a beaucoup de mérite, et il ya des moments où vous avez juste BESOIN de contourner le référent (j'ai un exemple juste maintenant où se référant via mon lien de produit que l'url est correcte, mais ensuite l'url de base détecte cette redirsct et les enjeux de sa propre redirection de mon nom de domaine -pas ce que je veux. je vais essayer votre solution et voir si cela fonctionne. cependant, l' +1 reste de toute façon que la logique ici a piqué mon esprit!!

InformationsquelleAutor Rob W | 2012-01-17