[RESOLU] Empécher la détection des DNS

Vos requêtes concernant Mozilla Firefox, le navigateur Gecko alternatif, ne trouvèrent point de réponses lorsque vous cherchâtes ? Toute l'équipe Geckozone est prête à vous aider.

Modérateurs : myahoo, nico@nc, Mori, jpj

Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: Empécher la détection des DNS

Message par Cucurbitacé »

Nicolas000 a écrit : 03 mars 2019, 18:47Via Canvas à ma connaissance, il y a CanvasBlocker comme extension pour filtrer cela. Après il y a aussi des scripts qui font un bench CPU de la machine pour l'identifier, il y a aussi la vitesse de frappe au clavier. C'est lourd tous ces trackings.
Voyez cela

1° => https://addons.mozilla.org/fr/firefox/a ... ivacy-plus <=

2° => https://addons.mozilla.org/en-US/firefox/user/14245232 <=, Browser Plugs Privacy Firewall doit être utilisé avec parcimonie, il peut carrément bloquer des sites, voire la navigation.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: Empécher la détection des DNS

Message par Nicolas000 »

Bien vu pour Privacy protector plus, j'avais à un moment cherché une protection concernant les "bugs web", mais je n'avais pas trouvé. Browser Plugs Privacy Firewall, semble avoir quelque chose concernant les performances, peut-être contre le fameux bench CPU. Merci pour la recommandation de ces extensions que je vais tester.
Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: Empécher la détection des DNS

Message par Cucurbitacé »

Bonsoir,

Il n'y a pas que ' Browser Plugs Privacy Firewall ' sur le lien que j'ai mis, il y a 4 extensions, je signalais seulement que celle-ci doit être utilisée avec parcimonie.

' BP Fingerprint Protection Privacy Beta ' fait le travail que vous recherchez, mais il n'est pas paramétrable, contrairement à Browser Plugs Privacy Firewall. Bloquer les fonts et les glyphes bloquent de temps à autres la lecture de certaines vidéos, cela ne fait pas apparaître le lecteur ou l’icône lecture.

Après vous avez des scripts qui bloquent certaines choses, mais qui peuvent eux aussi de temps à autres faire dysfonctionner certains sites. Ils s’utilisent avec des extensions pour scripts, celle que je trouve le plus utile est : Violent Monkey ; elle a une option qui permet de recharger la page automatiquement quand nous désactivons ou réactivons un script => https://violentmonkey.github.io <=

Un script qui empêche les sites de voir l’historique.

Code : Tout sélectionner

// ==UserScript==
// @name        Conceal history.length
// @description Intercepts read access to history.length property
// @namespace   localhost
// @include     *
// @run-at      document-start
// @version     1.0.1
// @grant       none
// ==/UserScript==

let _history={length:history.length};
Object.defineProperty(history,'length',{
  get: function() {
    if (_history.length > 2) {
      return 2;
    } else {
      return _history.length;
    }
  }
});

Un script qui protège Windows name :

Code : Tout sélectionner

// ==UserScript==
// @name        Conceal window.name
// @description Intercepts read access to window.name property.
// @namespace   localhost
// @include     *
// @exclude     *://ip-check.info
// @run-at      document-start
// @version     1.0.1
// @grant       none
// ==/UserScript==

var _window={name:window.name};
Object.defineProperty(window,'name',{
    get:function()
    {
	//No CAPTCHA reCAPTCHA
	if(/^https:\/\/www\.google\.com\/recaptcha\/api2\/(?:anchor|frame)\?.+$/.test(window.location.href)&&/^I[0-1]_[1-9][0-9]+$/.test(_window.name))
	{
		return _window.name;
	}
	else
	{
		if(_window.name!='')
		{
		console.warn('Intercepted read access to window.name "'+_window.name+'" from '+window.location);
		}
		return '';
	}
}
});

Un script qui protège du spoofing de Local Storage.

Code : Tout sélectionner

// ==UserScript==
// @name        localstorage_spoofing
// @description  disable localstorage
// @namespace   http://userscripts.org/users/
// @include	http://*
// @include	https://*
// @version     0.1
// @run-at      document-start
// @grant	none
// ==/UserScript==

var mockStorage={
	length:0,
	clear:function (){},
	getItem:function (){return null;},
	key:function (){return null;},
	removeItem:function (){},
	setItem:function (){},
};

Object.defineProperty(unsafeWindow, 'localStorage', {
  get: function () {
    return mockStorage;
  }
});

Un script qui protège du spoofin d'une partie de l'écran.

Code : Tout sélectionner

// ==UserScript==
// @name        Screen Resolution Spoof
// @namespace   r-a-y/browser/screen
// @description Alters attempts at fingerprinting your screen resolution to 1920x1080. Only tested in FIrefox.
// @include     *
// @version     1.1.4
// @grant       none
// @run-at      document-start
// ==/UserScript==

Object.defineProperty(window.screen, "availWidth", { get: function(){return 1920; }});
Object.defineProperty(window.screen, "width", { get: function(){return 1920; }});

Object.defineProperty(window.screen, "availHeight", { get: function(){return 1040; }});
Object.defineProperty(window.screen, "height", { get: function(){return 1040; }});

Object.defineProperty(window, "innerWidth", { get: function(){return 1920; }});
Object.defineProperty(window, "innerHeight", { get: function(){return 1040; }});

Object.defineProperty(window, "outerWidth", { get: function(){return 1920; }});
Object.defineProperty(window, "outerHeight", { get: function(){return 1040; }});

Object.defineProperty(window, "devicePixelRatio", { get: function(){return 1; }});

Si vous voulez que le script ne s’applique pas à un site, les options permettent d'ouvrir le script et d'y ajouter une ligne, il suffit d’ajouter la ligne dans la partie du haut qui est verte :
// @exclude puis l’adresse Internet en entière.

Pour ce forum, par exemple cela serait ça : // @exclude https://forums.mozfr.org/
Et les étoiles servent à exclure une adresse ou tout un site ou tous les sous répertoires du site.
3 possibilités qui ne font pas la même chose :

// @exclude https://forums.mozfr.org/* <= ça c'est toutes les pages suivantes du site

// @exclude * ://forums.mozfr.org/ <= pour lui, c'est si le site a plusieurs possibilités : http ou https ou ftp et que l'on ne veut pas que cela s'applique à toutes les pages suivantes.

// @exclude *://forums.mozfr.org/* <= là, la combinaison des deux.

Pour moi, presque tout est vert : https://ip-check.info/?foundHTTPS=true <= le script Windows Name bloque, il faut donc le désactiver et le réactiver en suite.

Après, il semble que l’on puisse aussi suivre à la trace une personne qui ne donne aucune information, car elle deviendrait une exception, donc plus facile à suivre.

Cordialement.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: Empécher la détection des DNS

Message par Nicolas000 »

Bonjour,
Cucurbitacé a écrit : 03 mars 2019, 23:12 ' BP Fingerprint Protection Privacy Beta ' fait le travail que vous recherchez, mais il n'est pas paramétrable, contrairement à Browser Plugs Privacy Firewall. Bloquer les fonts et les glyphes bloquent de temps à autres la lecture de certaines vidéos, cela ne fait pas apparaître le lecteur ou l’icône lecture.
Pour ma part, Browser Plugs Privacy Firewall fonctionne partiellement, concernant le brouillage des polices, il ne fonctionne pas voir ici https://browserleaks.com/fonts . BP Fingerprint Protection Privacy permet de cacher les polices, mais pas de les fausser comme j'aurais préféré. Et je me suis rendu compte au passage que CanvasBlocker ne fonctionne pas (ou plus) pour brouiller les polices, j'ai cherché d'autres extensions pour brouiller les polices, mais rien ne fonctionne actuellement sauf BP Fingerprint Protection Privacy. A défaut, j'ai remplacé CanvasBlocker par Canvas Defender qui permet de changer automatiquement la signature Canvas sur un temps que l'on peut définir. Aussi, avec Browser Plugs Privacy Firewall, l'option Windows Name fonctionne avec le site ip-check.info contrairement au script utilisé avec violentmonkey. Sinon, il y a des options vraiment intéressantes dans Browser Plugs Privacy Firewall.
Cucurbitacé a écrit : 03 mars 2019, 23:12 Après, il semble que l’on puisse aussi suivre à la trace une personne qui ne donne aucune information, car elle deviendrait une exception, donc plus facile à suivre.
Oui, c'est pour cette raison que je préfère envoyer des fausses informations, ou disons des informations plus standard. Perso, je laisse quand même la langue en fr, autorise les cookies (pas trop le choix en même temps). Mais comme tout est supprimé à la fermeture de Firefox, j'obtiens une nouvelle session fraiche à la prochaine ouverture du navigateur. Ca avec les filtrages et autres fausses infos, ça doit quand même bien mettre les statistiques des trackers dans les choux.

Encore merci pour ces recommandations.
Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: [RESOLU] Empécher la détection des DNS

Message par Cucurbitacé »

Bonsoir Nicolas000,

Pour moi, Browser Plugs Privacy Firewall , cela fonctionne, je pense qu’il faut redémarrer Firefox.
Mais dans l’option Fonts, il faut cocher en bas : no fonts.
Voyez par vous-même : https://image.noelshack.com/fichiers/20 ... -titre.png

Cordialement.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: [RESOLU] Empécher la détection des DNS

Message par Nicolas000 »

Après quelques tests, le masquage des polices fonctionne avec Browser Plugs Privacy Firewall, le problème venait de BP Privacy Block All Font and Glyph Detection qui même désactivé posait un conflit. J'ai aussi constaté l'impossibilité de charger le site de www.pinterest.fr a cause des extensions BP Privacy Block All Font and Glyph Detection et Browser Plugs Fingerprint Privacy Randomizer, même en les désactivants, il a fallut que je les désactive complétement au niveau du gestionnaire d'extension pour que le site fonctionne. Ceci dit, je n'en ai finalement pas besoin, vu que Browser Plugs Privacy Firewall fait maintenant leur boulot.

A propos du WebGL Image Hash https://browserleaks.com/webgl arrivez vous à le changer? Car de mon coté il ne bouge pas, seul le WebGL Report Hash bouge.

Edit: CanvasBlocker change le WebGL Image Hash

Cordialement
Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: [RESOLU] Empécher la détection des DNS

Message par Cucurbitacé »

Bonsoir Nicolas000,

Je n’utilise pas que des scripts, ou extensions, mais j’utilise une partie du travail de cette personne :
=> https://github.com/pyllyukko/user.js/bl ... er/user.js ; alors il faut faire très attention, car cela peut bloquer la navigation et c’est beaucoup plus difficile à réparer qu'avec des extensions.

Il y a eu aussi, mais il est hyper restrictif, donc attention, il faut lire par section, il y en a 29, elle commence comme ça : /*** [SECTION , chaque section explique les propositions. Il y a une section fonts et :
- /*** [SECTION 2500]: HARDWARE FINGERPRINTING ***/

- /*** [SECTION 4500]: RFP (RESIST FINGERPRINTING)

=> https://github.com/ghacksuserjs/ghacks- ... er/user.js <=

Le fichier user.js se met dans le profil, il va prendre le dessus sur le fichier Prefs.js de Firefox.
Moi, j’ai bloqué WebGL dans Firefox, dans une fenêtre vierge mettre about:config, va apparaître toutes les options cachées.

Pour essayer les extensions, les scripts, les fichiers user.js, les commandes à changer, jouer avec, j'utilise Firefox portable, et seulement après, si je suis convaincu, je transfers sur Firefox => https://portableapps.com/apps/internet/firefox_portable <=

Bien à vous.
Morales
Varan
Messages : 1023
Inscription : 24 juin 2015, 19:10

Re: Empécher la détection des DNS

Message par Morales »

Cucurbitacé a écrit : 03 mars 2019, 23:12
...
Après, il semble que l’on puisse aussi suivre à la trace une personne qui ne donne aucune information, car elle deviendrait une exception, donc plus facile à suivre.

Cordialement.
Bonjour, oui, c'est comme si on fait disparaître son dossier de fac en prétextant un changement d'université auquel cas ils nous le confiaient afin qu'on le déplace nous même. "On" m'avait conseillé ça mais bon c'est le même problème donc je n'ai pas suivi ce conseil.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: [RESOLU] Empécher la détection des DNS

Message par Nicolas000 »

Bonsoir,

@ Cucurbitacé
Je suis mitigé concernant le script ViolentMonkey qui passe la résolution native de l'écran à 1920x1040, je pense que le 1040 pose problème, il n'y a vraiment pas grand monde qui ont des écrans avec une résolution native de 1920x1040.

Code : Tout sélectionner

Object.defineProperty(window.screen, "availHeight", { get: function(){return 1040; }});
Object.defineProperty(window.screen, "height", { get: function(){return 1040; }});
Cela revient à dire que vous avez un écran avec une résolution native de 1040 en hauteur, alors que les écran Full HD sont de 1080, je pense que les valeurs availHeight et height ont été confondues avec innerHeight.

Les statistiques montrent qu'il vaut mieux utiliser 1366x768 ou 1920x1080 afin d'être confondu parmi la majorité des PC http://gs.statcounter.com/screen-resolution-stats
http://fr.screenresolution.org/

Pour ma part j'utilise ce script (PC portable)

Code : Tout sélectionner

// ==UserScript==
// @name        Screen Spoof 1366x768
// @namespace   r-a-y/browser/screen
// @description Alters attempts at fingerprinting your screen resolution to 1366x768. Only tested in FIrefox.
// @include     *
// @version     Perso
// @grant       none
// @run-at      document-start
// ==/UserScript==

Object.defineProperty(window.screen, "availWidth", { get: function(){return 1366; }});
Object.defineProperty(window.screen, "width", { get: function(){return 1366; }});

Object.defineProperty(window.screen, "availHeight", { get: function(){return 768; }});
Object.defineProperty(window.screen, "height", { get: function(){return 768; }});

Object.defineProperty(window, "innerWidth", { get: function(){return 1366; }});
Object.defineProperty(window, "innerHeight", { get: function(){return 768; }});

Object.defineProperty(window, "outerWidth", { get: function(){return 1366; }});
Object.defineProperty(window, "outerHeight", { get: function(){return 768; }});

Object.defineProperty(window, "devicePixelRatio", { get: function(){return 1; }});
Concernant la fonction de masquage des polices de l'extension Browser Plugs Fingerprint Privacy Firewall, celle-ci avait des fuites quand je faisais le test sur https://browserleaks.com/fonts , si dans la barre de menu qui se trouve en bas à gauche du site vous allez sur un autre test comme WebGL, puis que via cette même barre de menu vous sélectionnez ensuite le test Font Fingerprinting, je constatai que le site avait bien eu accès à mes polices, si la page est rechargé, la non il n'y a pas eu accès (donc fuite). Par curiosité suite à une recherche concernant les réglages de tor, je suis allé dans about:config puis j'ai effectué une recherche sur fingerprint, j'ai vu la valeur qui se nomme privacy.resistFingerprinting, j'ai passé sa valeur à "true", et maintenant je constate que la protection des polices fonctionne bien, par contre, cela créé un problème d'affichage de certaines images dans ebay :evil:

Je vais regarder ce qu'il y a d'intéressant dans ces scripts que vous avez laissé en lien.

Cordialement
Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: [RESOLU] Empécher la détection des DNS

Message par Cucurbitacé »

Nicolas000 a écrit : 06 mars 2019, 22:21 Bonsoir,

Code : Tout sélectionner

Object.defineProperty(window.screen, "availHeight", { get: function(){return 1040; }});
Object.defineProperty(window.screen, "height", { get: function(){return 1040; }});
[...]

Bonsoir Nicolas000,

Vous pouvez vous-même changer les valeurs à l’intérieur d’un script.

privacy.resistFingerprinting mise à True, les user.js indiquent que cette valeur peut faire dysfonctionner certains sites.

Bien à vous.
Morales
Varan
Messages : 1023
Inscription : 24 juin 2015, 19:10

Re: [RESOLU] Empécher la détection des DNS

Message par Morales »

Bon en gros vous essayez de contourner le ban d'hardware.fr quoi :lol: Il faut dire qu'ils en tiennent une couche là bas. Perso dès qu'ils me mettent aux teletubbies (en général parce qu'on a osé répondre à une huile secrète du forum ou qu'on a abordé un sujet non politiquement correct comme l'intérêt de conserver une adresse IP dynamique oui oui :lol: dans mon cas) donc teletubbies eh bien moi j'insulte le modo direct donc ban IP.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: [RESOLU] Empécher la détection des DNS

Message par Nicolas000 »

Ca sert contre les bans, mais aussi contre les surveillances commerciales, médiatiques, politiques. Enfin à rester neutre, sans se retrouver avec des "recommandations" qui nous mettent dans un tiroir avec tout l'historique de notre vie sur internet géré par des intelligences artificielles qui croient nous connaitre mieux que nous même. Bientôt ça va être genre, tous ce que vous direz sur internet pourra être retenu contre vous. Et avec un Mounir Mahjoubi qui doit rêver d'un remake entre minority report et 1984, mieux vaut rester prudent.
Morales
Varan
Messages : 1023
Inscription : 24 juin 2015, 19:10

Re: [RESOLU] Empécher la détection des DNS

Message par Morales »

Oui c'est clair, on constate une avancée en parallèle dans cette société d'une part des moyens de surveillance, et d'autre part de la volonté de surveillance, avec en plus et c'est ça le pire une sorte de déviation de la logique même, en gros par exemple des confusions fréquentes entre souhaiter un malheur et menacer, des mots qui ne veulent plus rien dire c'est à dire tout dire, après avoir été galvaudés, vidés de leur sens.
Nicolas000
Salamandre
Messages : 26
Inscription : 02 mars 2019, 14:26

Re: [RESOLU] Empécher la détection des DNS

Message par Nicolas000 »

Oui, c'est comme dire à des gens qu'ils font les fous, et avoir pour réponse qu'on les menaces.

Bref, un script intéressant à utiliser avec violentmonkey, c'est celui qui concerne le "fakage" des polices. Je l'ai récupérer dans l'extension browser_plugs_fingerprint_privacy_randomizer-3.4.2. L'avantage de l'utiliser avec violentmonkey, c'est que comme l'a expliqué Cucurbitacé, on peut utiliser un // @exclude avec les quelques sites qui ne fonctionnement pas avec cette protection. Un autre avantage de ce script est qu'il ne se contente pas de cacher les polices, mais bien de les fausser. Après, même les sites exclus seront trompé si privacy.resistFingerprinting a été mis à True, parce que les sites exclus auront par défaut l’empreinte de tor, et les autres non exclus un hash d’empreinte aléatoire.

Code : Tout sélectionner

// ==UserScript==
// @name Fonts Gen
// @namespace Violentmonkey Scripts
// @match *://*/*
// @grant none
// @exclude  *://www.pinterest.fr/*
// @exclude https://mail.google.com/*
// ==/UserScript==

(function() {

var pvft = '(' + function () {
	'use strict';
	function defineobjectproperty(val, e, c, w) {
		// Makes an object describing a property
		return {
			value: val,
			enumerable: !!e,
			configurable: !!c,
			writable: !!w
		}
	}
	
	
	
	var originalStyleSetProperty = CSSStyleDeclaration.prototype.setProperty
	var originalSetAttrib = Element.prototype.setAttribute
	var originalNodeAppendChild = Node.prototype.appendChild

			var DEFAULT = 'auto';
			
   var baseFonts = ["default"]
 
	 var FontWhiteList = ["Arial","Arial Black","Arial Narrow","Calibri","Calibri Light","Cambria","Cambria Math","Candara","Caurier Regular","Comic Sans","Comic Sans MS","Comic Sans MS Bold","Consolas","Constantia","Corbel","Courier","Courier New","cursive","Ebrima","fantasy","Fixedsys","Fixedsys Regular","Franklin Gothic","Franklin Gothic Medium","Gabriola","Gabriola Regular","Gadugi","Georgia","Helvetica","HoloLens MDL2 Assets","HoloLens MDL2 Assets Regular","Impact","Impact Regular","Javanese Text","Javanese Text Regular","Leelawadee UI","Leelawadee UI Semilight","Lucida Console","Lucida Console Regular","Lucida Sans Unicode","Lucida Sans Unicode Regular","Malgun Gothic","Malgun Gothic Semilight","Marlett","Microsoft Himalaya","Microsoft Himalaya Regular","Microsoft JhengHei","Microsoft JhengHei Light","Microsoft JhengHei UI","Microsoft JhengHei UI Light","Microsoft New Tai Lue","Microsoft PhagsPa","Microsoft PhangsPa","Microsoft Sans Serif","Microsoft Sans Serif Regular","Microsoft Tai Le","Microsoft YaHei","Microsoft YaHei Light","Microsoft YaHei UI","Microsoft YaHei UI Light","Microsoft Yi Baiti","Microsoft Yi Baiti Regular","MingLiU-ExtB","MingLiu-ExtB Regular","MingLiU_HKSCS-ExtB","MingLiU_HKSCS-ExtB Regular","Modern","Modern Regular","Mongolia Baiti Regular","Mongolian Baiti","monospace","MS Gothic","MS Gothic Regular","MS PGothic","MS PGothic Regular","MS Sans Serif","MS Sans Serif Regular","MS Serif","MS Serif Regular","MS UI Gothic","MS UI Gothic Regular","MV Boli","MV Boli Regular","Myanmar Tet","Myanmar Text","Nimarla UI","Nirmala UI","Nirmala UI Semilight","NSimSun","NSimSun Regular","Palatino Linotype","PMingLiU-ExtB","PMingLiU-ExtB Regular","Roman","Roman Regular","sans-serif","Script","Script Regular","Segoe MDL2 Assets","Segoe MDL2 Assets Regular","Segoe Print","Segoe Script","Segoe UI","Segoe UI Black","Segoe UI Emoji","Segoe UI Emoji Regular","Segoe UI Historic","Segoe UI Historic Regular","Segoe UI Light","Segoe UI Semibold","Segoe UI Semilight","Segoe UI Symbol","Segoe UI Symbol Regular","serif","SimSun","SimSun-ExtB","SimSun-ExtB Regular","SimSun Regular","Sitka Banner","Sitka Display","Sitka Heading","Sitka Small","Sitka Subheading","Sitka Text","Small Fonts","Small Fonts Regular","Sylfaen","Sylfaen Regular","Symbol","Symbol Regular","System","System Bold","Tahoma","Terminal","Times","Times New Roman","Trebuchet MS","Verdana","Webdings","Webdings Regular","Wingdings","Wingdings 2","Wingdings 3","Wingdings Regular","Yu Gothic","Yu Gothic Light","Yu Gothic Medium","Yu Gothic UI","Yu Gothic UI Light","Yu Gothic UI Semibold","Yu Gothic UI Semilight","Brush Script MT","Broadway","Bell MT","Berlin Sans FB","Blackadder ITC","Curlz MT","Elephant","Engravers MT","Goudy Old Style","Lucida Fax","MS Outlook","Minion Pro","Papyrus","Wide Latin","Snap ITC","Stencil","Old English Text MT"].map(function(x){return x.toLowerCase()})     
     
     var keywords = ["inherit", "auto", "default", "!Important"]
		

	baseFonts.push.apply(baseFonts, FontWhiteList)
	baseFonts.push.apply(baseFonts, keywords)




	function getAllowedFontFamily(family) {
		var fonts = family.replace(/"|'/g,'').split(',')
		var allowedFonts = fonts.filter(function(font) {
			if(font && font.length) {
				var normalised = font.trim().toLowerCase()
				// Allow base fonts
				for(var allowed of baseFonts)
					if(normalised == allowed) return true
				// Allow web fonts
				for (var allowed of document.fonts.values())
					if(normalised == allowed) return true
			}
		})
		return allowedFonts.map(function(f){
			var trimmed = f.trim()
			return ~trimmed.indexOf(' ') ? "'" + trimmed + "'" : trimmed
		}).join(", ")
	}
	

	function modifiedCssSetProperty(key, val) {
		if(key.toLowerCase() == 'font-family') {
			var keyresult = key.toLowerCase()
			//var allowed = getAllowedFontFamily(val)
			
					
			var mrrandom = Math.floor(Math.random()*10);
				
if (mrrandom < 7) {
 var allowed = getAllowedFontFamily(val)
			var oldFF = this.fontFamily
} else {
     var allowed = oldFF
			var oldFF = getAllowedFontFamily(val)
	
				
}
					
			return originalStyleSetProperty.call(this, 'font-family', allowed || DEFAULT)
		}
		return originalStyleSetProperty.call(this, key, val)
	}
	
	function makeModifiedSetCssText(originalSetCssText) {
		return function modifiedSetCssText(css) {
			var fontFamilyMatch = css.match(/\b(?:font-family:([^;]+)(?:;|$))/i)
			if(fontFamilyMatch && fontFamilyMatch.length == 1) {
				css = css.replace(/\b(font-family:[^;]+(;|$))/i, '').trim()
				var allowed = getAllowedFontFamily(fontFamilyMatch[1]) || DEFAULT
				if(css.length && css[css.length - 1] != ';')
					css += ';'
				css += "font-family: " + allowed + ";"
			}
			return originalSetCssText.call(this, css)
		}
	}
	
	var modifiedSetAttribute = (function() {
		var innerModify = makeModifiedSetCssText(function (val) {
			return originalSetAttrib.call(this, 'style', val)
		})
		return function modifiedSetAttribute(key, val) {
			if(key.toLowerCase() == 'style') {
				return innerModify.call(this, val)
			}
			return originalSetAttrib.call(this, key, val)
		}
	})();
	
	function makeModifiedInnerHTML(originalInnerHTML) {
		return function modifiedInnerHTML(html) {
			//Add as normal, then fix before returning
			var retval = originalInnerHTML.call(this, html)
			recursivelyModifyFonts(this.parentNode)
			return retval
		}
	}
	
	function recursivelyModifyFonts(elem) {
		if(elem) {
			if(elem.style && elem.style.fontFamily) {
				modifiedCssSetProperty.call(elem.style, 'font-family', elem.style.fontFamily) // Uses the special setter
			}
			if(elem.childNodes)
				elem.childNodes.forEach(recursivelyModifyFonts)
		}
		return elem
	}

	function modifiedAppend(child) {
		child = recursivelyModifyFonts(child)
		return originalNodeAppendChild.call(this, child)
	}
	
		
	var success = true
	
	function overrideFunc(obj, name, f) {
		try {
			Object.defineProperty(obj.prototype, name, defineobjectproperty(f, true))
		} catch(e) {success=false;}
	}
	
	
	function overrideSetter(obj, name, makeSetter) {
		try {
			var current = Object.getOwnPropertyDescriptor(obj.prototype, name)
			current.set = makeSetter(current.set)
			current.configurable = false
			Object.defineProperty(obj.prototype, name, current)
		} catch(e) {success=false;}
	}
	overrideFunc(Node, 'appendChild', modifiedAppend)
	overrideFunc(CSSStyleDeclaration, 'setProperty', modifiedCssSetProperty)
	overrideFunc(Element, 'setAttribute', modifiedSetAttribute)
	
		try {
		Object.defineProperty(CSSStyleDeclaration.prototype, "fontFamily", {
			set: function fontFamily(f) {
				modifiedCssSetProperty.call(this, 'font-family', f)
			},
			get: function fontFamily() {
				return this.getPropertyValue('font-family')
			}
		})
	} catch(e) {success=false;}
	
	
	overrideSetter(CSSStyleDeclaration,'cssText', makeModifiedSetCssText)
	overrideSetter(Element,'innerHTML', makeModifiedInnerHTML)
	overrideSetter(Element,'outerHTML', makeModifiedInnerHTML)
	
} + ')();';


var script = document.createElement('script')
script.textContent = pvft;
(document.head||document.documentElement).appendChild(script)
script.parentNode.removeChild(script)

})();
Cordialement
Avatar de l’utilisateur
Cucurbitacé
Animal mythique
Messages : 5637
Inscription : 22 juil. 2012, 05:27

Re: [RESOLU] Empécher la détection des DNS

Message par Cucurbitacé »

Nicolas000 a écrit : 14 mars 2019, 01:25Bref, un script intéressant à utiliser avec violentmonkey, c'est celui qui concerne le "fakage" des polices.
Bonjour Nicolas000,

Qu’avez-vous changé dans le script ?
Car j’avais déjà essayé avec une extraction sur "Browser Plugs Privacy Firewall "et sur "BP Block Font Fingerprint", mais cela n’a jamais fonctionné.
Ainsi j’en déduis qu’il ne faut pas se conter de recopier le script tel quel, mais y changer quelque chose.

Bien à vous.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Bing [Bot], Bulbul, Google [Bot] et 73 invités