CanvasBlocker schlägt Fingerprinting-Alarm bei WordPress > 4.2

Schon etwas länger her, aber bisher nicht bemerkt: seit dem Update auf WordPress 4.2 zeigt das FireFox-AddOn CanvasBlocker (bzw. der TOR-Browser) einen vermeintlichen Versucht der Nutzerverfolgung per Browser-Fingerprinting bei entsprechenden Blogs an. Ursächlich dafür ist der automatisch im WordPress-Header eingefügte JavaScript-Code zur Erkennung der Emoji-Fähigkeiten des genutzen Browsers, der auf die Canvas-API zurückgreift. Daher findet sich folgender kleiner Code-Baustein im Seitenquelltext wieder:

		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.4\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.4\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.sagrland.de\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.4"}};
			!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55357,56692,8205,9792,65039],[55357,56692,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>

Zwei einfache Möglichkeiten, um das Problem aus der Welt zu schaffen (also den Code loszuwerden):

  1. In WordPress über Design->Editor die Datei „functions.php“ editieren und die folgenden beiden Zeilen eintragen:
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    
  2. Alternativ das folgende WordPress-Plugin installieren:
    https://de.wordpress.org/plugins/disable-emojis/

Quellen:
http://www.iknews.de/2016/03/11/wordpress-4-2-und-canvas-fingerprinting/
https://www.klausoppermann.de/wordpress-4-2-fuegt-smilie-code-emoji-in-den-header-ein/
https://core.trac.wordpress.org/ticket/39700

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

code