Vor kurzem ist dem Online Marketing eine Registrierungwelle aufgefallen – erstmal nichts ungewöhnliches nach Kampagnen. Nur stellte sich nach kurzer Rechere heraus das es überwiegend komische Mailadressen waren und die Vornamen sahen wie folgt aus…
Profildaten
Email: 18059389567@189.com
Vorname: 特邀16金+88红包专业棋牌网https://XXXXXXX.com +Q 3339152878包赔50反18冲100反28金1倍水
Nachname: 37683675
Geburtstag: 2002-03-15
Ziel
Viele dieser Registrierungen werden in der Folge dann zum Spammen benutzt um bisherige Sperren aufzuheben und spuren zu verwischen. Sprich hier werden Wunschlisten geteilt oder andere Wege gefunden, damit der Vorname hier als Text in der E-Mail erscheint.
Lösungen
Captcha
Oft reicht hier schon das einfache Captcha von Shopware selbst. Wenn du sicher gehen willst, kannst du aber auch reCaptcha V2 oder V3 einsetzen. Bei der Version 3 ist keine Interaktion mehr vom Nutzer nötig.
Gerade beim Thema Konversion Rate sind hier Online Shops sehr „contra“ Captcha da es die CR verringern soll. Hier also Obacht.
GEO blocking
Die extension php-geoip bietet einige Funktionen um Länder oder Kontinente komplett zu blocken. Obacht hier aber mit der neuen EU Richtline, ihr solltet auf keinen Fall Länder in der EU blocken, sonst könnte es Ärger geben.
Testen könnt Ihr das ganze auf die schnelle z.B. in der shopware.php mit folgendem Code
echo geoip_country_code_by_name('14.102.131.255');
wird euch in dem Fall CN ausgeben. Denkt daran vorher die extension mit apt install php-geoip zu installieren. Mit dem String könnt Ihr dann alle chinesischen IPs blockieren, wie im Beispiel unten:
# Traffic von China blocken
if (in_array (geoip_country_code_by_name($_SERVER['REMOTE_ADDR']) , array('CN'))) {
exit('Your country is not allowed');
}
Mail- oder IP-Adressen blockieren
Handelt es sich überwiegend um eine TLD Mail oder ein gewisses Pattern auf das Ihr prüfen könnt, kann man auch erstmal nur diese Daten sperren.
Ich habe teilweise auch schon das EmailValidatorInterface implementiert und damit den E-Mail Validator von Shopware dekoriert:
<service id="sc_block_mails_bundle_account.constraint.form_email_validator"
class="ScBlockMails\Component\FormEmailValidator"
decorates="validator.email"
public="false">
<argument type="service" id="sc_block_mails_bundle_account.constraint.form_email_validator.inner"/>
<argument type="service" id="shopware.plugin.cached_config_reader"/>
</service>
Dort prüfe ich ob die Mail TLD Endungen wie qq.com o.Ä. enthält. Aber Obacht der EmailValidator wird nicht nur in der Registrierung verwendet (The Validator\EmailValidator class is used to validate emails addresses consistently across the system)
/var/www/shopware/engine/Shopware/Components/Validator/EmailValidator.php
Fazit
Viele Wege führen wie üblich nach Rom. Am Ende entscheidet Ihr was in eurem Usecase Sinnvoll ist. Bis heute kamen keine weiteren Registrierungen mehr aus China oder Russland rein.
Ähnliches Problem gehabt oder eine andere Lösung? Schreibt gerne in die Kommentare
Moin!
wie immer ein interessanter Post 🙂
Eine weitere Möglichkeit möchte ich noch erwähnen: Input-Filter 🙂
Ich hatte ebenfalls das Problem mit dem China-Spam – überwiegend Registrierungen mit @qq.com adressen.
Schnell und simpel gelöst über den Input-Filter „(@qq.com)“ im Backend: Grundeinstellungen –> System –> Inputfilter
Man muss natürlich beachten dass damit sämtliche Eingaben dementsprechend gefiltert werden – aber das ist in diesem/unseren Fall auch gut so 🙂