Archiv der Kategorie: WordPress

Google Remarketing und Facebook Pixel auf WordPress einrichten

Bei Adwords anmelden

Schraubschlüsselsymbol -> In der Rubrik: GEMEINSAM GENUTZTE BIBLIOTHEK: Zielgruppenverwaltung

Zielgruppenquellen -> In der Karte AdWord-Tags: DETAILS

Unterster Bereich: AdWords-Tag Anleitung zur Einrichtung und Tag-Code maximieren

In WordPress das Plugin Insert Headers and Footers installieren & aktivieren.

Einstellungen -> Insert Headers and Footers

Allgemeines Website Tag & Ereignis Snippet in Header Sektion abspeichern

In Facebook Werbeanzeigenmanager auf Pixel gehen

Einrichtungsanleitung anzeigen

Code manuell erstellen

Pixel-Code kopieren und ebenfalls in Header Sektion von Insert Headers and Footers-Plugin kopieren und speichern.

Mail delivery failed: returning message to sender

Angriffsbeschreibung

Seit gestern bekomme ich mehrmals stündlich folgende E-Mails in mein Postfach:

This message was created automatically by mail delivery software.
Error
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  xyz@mail.ru
    SMTP error from remote mail server after end of data:
    host mxs.mail.ru [94.100.180.104]: 550 spam message rejected. Please visit http://help.mail.ru/notspam-support/id?c=WMigd_PLYuHmakzNLb3CXKQa0-GwN0i5g6somqCPuTsEAAAAuccBAC4KwyA~ or  report details to abuse@corp.mail.ru. Error code:
    77A0C858E162CBF3CD4C6AE65CC2BD2DE1D31AA4B94837B09A28AB833BB98FA0. ID:
    000000040001C7B920C30A2E.

------ This is a copy of the message's headers. ------

Return-path: <meine-email@it-freelancer-magazin.de>
Received: from vwp16331.webpack.hosteurope.de ([111.111.111.111] helo=www.it-freelancer-magazin.de); authenticated
	by vwp16331.webpack.hosteurope.de running ExIM with esmtpa
	id 1ewLyd-0001NJ-PT; Thu, 15 Mar 2018 07:02:59 +0100
Date: Thu, 15 Mar 2018 06:02:59 +0000
To: xyz@mail.ru
From: IT Freelancer Magazin <newsletter@it-freelancer-magazin.de>
Reply-To: meine-email@it-freelancer-magazin.de
Subject: =?UTF-8?Q?Bitte_best=C3=A4tigen_Sie_die_Registrierung_-_IT_Freelancer_Mag?=
 =?UTF-8?Q?azin_newsletter?=
Message-ID: <145763c7cfe0c93637c1de363c59e053@www.it-freelancer-magazin.de>
X-Mailer: PHPMailer 5.2.22 (https://github.com/PHPMailer/PHPMailer)
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

Schaut man sich diese E-Mails genauer an, dann haben alle Adressaten russische Mail-Accounts. Außerdem weist der Subject darauf hin, dass jemand versucht, meine Newsletter-Anmeldung zu missbrauchen, um die Adressaten mit meiner Anmelde-Bestätigungs-Email vollzuspamen. Ein Blick in meinen WordPress-Newsletter Subscription-List zeigt, dass tatsächlich viele Pseudo-Anmeldungen auf russische Mail-Konten stattgefunden haben. Ein Blick in die Liste der Newsletter-Abonnenten, die not confirmed sind, offenbart, dass viel mehr Anmeldeversuche stattgefunden haben, als ich E-Mails bekommen habe. Dies deutet wiederum darauf hin, dass meine Anmeldeaufforderung tatsächlich in deren Mailboxes gelandet ist und nicht von deren Mailserver abgelehnt und an mich zurückgeschickt wurden. 

Zwei mal wurde ich bisher auf diese Weise angegriffen – das erste Mal war der Spuk nach ein paar Tagen von selbst wieder vorbei. Beim zweiten Mal musste ich mich stärker damit beschäftigen.

Mutmaßliche Angriffsgründe

Anfangs mutmaßte ich, dass durch diesen Angriff mein newsletter geblacklistet werden solle. Wahrscheinlich versuchen jedoch nur einige Bösewichte mit dem Spam Geld zu verdienen, denn als Vornamen wird z.B. folgendes eingetragen: dmunday28! Congratulations, You Have Won iPhone! – http://tofocovody.tk/b37106_prize2019_37106

Schäden

Es gibt drei Schäden, die bei dieser Art Angriff entstehen:

1.) Blacklistung der eigenen IP, Domain, usw.

2.) Man wird selbst mit E-Mails zugespamt (die der Mailserver zur Verteidigung schickt und man wird durch Karteileichen gestört, z.B. wird die Auswertung verfälscht, wieviele Prozent Newsletteranmelder auch tatsächlich die Bestätigungsemail schicken.

3.) Arme E-Mail-Nutzer auf der anderen Seite werden zugespamt und man leistet Betrügern ungewollt Unterstützung.

Verteidigung

Der erste Angriff war ja nach einiger Zeit vorbei. Den zweiten Angriff vollständig und nachhaltig abgewehrt hat aber erst das Einschalten von Akismet. Das war auch die einzige Maßnahme, die im Nachhinein betrachtet notwendig war. Also habe ich alle anderen Sicherheitsmechanismen wieder ausgeschaltet. Beim Ein- und Ausschalten kann es sein, dass irgendwas blöde verrutscht. Ich habe lange Zeit gar keine Newsletteranmeldungen bekommen, also weder Spam noch die echten. Also immer nach einer Umstellung der Sicherheitseinstellung testen, ob die Newsletteranmeldung noch sauber funktioniert.

Hier findet sich die entsprechende Doku.

Verteidigungsansatz: Adress-Blacklisting

Die meisten Anmeldungen gingen an russische E-Mail-Adressen, die mit hoher Wahrscheinlichkeit nicht zu meiner Zielgruppe zählen, daher schließe ich folgende Domains per Blacklist aus:

Dies reduziert zwar, aber blockiert die Angriffe nicht vollständig, da die Fake-Anmeldung auch an einige andere E-Mail-Adressen (z.B. yahoo und gmail) stattfinden.

Verteidigungsansatz: IP-Blacklisting

Die Angriffe finden bei mir über sehr unterschiedliche IP-Adressen statt, weshalb diese Verteidigungsstratgie bei mir keinen Sinn macht. Es gibt kaum doppelte IP-Adressen:

SELECT created, surname, name, email, ip, count(ip) FROM `wp_newsletter` WHERE status = "S" GROUP BY ip ORDER BY count(id) DESC

Statistics: Clicks for link of WordPress ‚The Newsletter Plugin‘

For me it’s very interesting to see, which are the top-performing articles, to recognize, which content my readers want. Because more and more people subscribe to my newsletters over the time, I need to compare the number of clicks on an article to the numbers of emails sent.

The following snippet works perfectly for me to get a good understanding about the content, however the report is pretty ugly. So, use the code as a base for your needs.

 

<?php
$servername = "yourIP";
$username = "yourDatabaseUser";
$password = "yourPassword";
$database = "yourDatabase";

$connection = new mysqli($servername, $username, $password, $database);

$sql = "SELECT email_id, COUNT(url) AS numberOfLinkClicks, url FROM wp_newsletter_stats w WHERE url <>'' GROUP BY url";
$result_article_counts = $connection->query($sql);

while($rowOuter = $result_article_counts->fetch_assoc()) {
	$sql = "SELECT id, sent FROM wp_newsletter_emails WHERE id = " . $rowOuter['email_id'];
	$result_newsletter_counts = $connection->query($sql);
	while($rowInner = $result_newsletter_counts->fetch_assoc()) {
		$numberOfSentEmails = $rowInner['sent'];
	}
	$link = $rowOuter['url'];
	$numberOfLinkClicks = $rowOuter['numberOfLinkClicks'];
	$click_rate = $numberOfLinkClicks / $numberOfSentEmails;
	if ($click_rate > 0.15) {
		$bold = "<b>"; 
	$bold2 = "</b>";
	} else {
		$bold =""; 
	$bold2 = "";
	}
	echo "Link: " . $link . " -> Clickrate: " . $bold . $click_rate . $bold2 . "<br>";
}
	
$connection->close();
?>