Obfuskieren von mailto:foo@bar.com beim Importieren von Mail-Archiven

Hallo,

Nach einem erfolgreichen Import von Mail-Archiven ( mbox ) werden in den Nachrichten E-Mail-Adressen angezeigt, die zuvor von Gmane oder dem mailman2-Archivserver verschleiert wurden. Dadurch können Bots, die Adressen sammeln, diese in Discourse ermitteln. Ich suche nach einer Möglichkeit, dies zu verhindern.

  1. Globales Entfernen von E-Mail-Adressen in den Beiträgen (vielleicht über ein Anzeige-Plugin?)
  2. Gibt es eine Site-Einstellung, die dies bereits übernimmt?
  3. Eine andere Idee?

Vielen Dank im Voraus für eure Hilfe!

Warum werden E-Mail-Adressen im Inhalt von Nachrichten angezeigt? Können Sie ein Beispiel geben?

1 „Gefällt mir“

Ich werde dir in einer PN einen Link zu den öffentlich zugänglichen Beiträgen schicken, um die Bots nicht noch mehr als ohnehin schon zu triggern :stuck_out_tongue:

Hier ist die verschleierte Version der Nachricht:


Le 23 décembre 2010 14:05, [redacted] l <[redacted]@gmail.com](mailto:[redacted]@gmail.com)
mailto:[redacted]@gmail.com> a écrit :

Pour info lorsqu’il y a des mises à jour voila comment je procede

Das ist also ein Problem beim Import, das (falls Sie noch die Möglichkeit dazu haben) während der Importphase behoben werden sollte. Ich habe mir Ihr Forum angesehen, und es ist voller fehlerhafter Inhalte (E-Mail-Header, falsche Einrückungen) im Hinblick darauf, dass alte E-Mails nicht abgeschnitten wurden, aber auch E-Mails, die Antworten aufeinander sind, in verschiedenen Themen platziert wurden.

Entweder haben Sie show_trimmed_content (hier) während des Imports aktiviert, oder Ihr Nachrichtenformat wurde vom Code zum Abschneiden von Antworten (hier) nicht erkannt. Obwohl es scheint, als gäbe es noch viele andere Probleme.

2 „Gefällt mir“

Gute Vermutung: Ich habe show_trimmed_content tatsächlich auf true gesetzt, da der Code zum Kürzen von Antworten häufig mehr kürzt, als er sollte. Nicht nur im importierten mbox, sondern auch täglich bei Antworten per E-Mail. Obwohl es möglich sein sollte, den Kürzer zu verbessern, schien es ein aussichtsloser Kampf zu sein. Nutzer von E-Mail werden immer (i) aus welchen Gründen auch immer seltsam formatierte E-Mails senden und (ii) erwarten, dass diese vollständig angezeigt werden.

Tatsächlich gibt es weitere Probleme beim Import: Er ist alles andere als perfekt. Obwohl ich gerne darüber diskutieren würde, sind sie kein dringendes Anliegen.

Da es so aussieht, als hätte ich keine Option beim Import übersehen, die E-Mails verschleiern würde, bleiben offenbar zwei Möglichkeiten:

  • Inhalt in den Beiträgen global durch etwas wie s/{email_regexp}/obfuscated/ ersetzen
  • Einen Plugin finden/schreiben, der angezeigten Inhalt (HTML-Konverter?) mit s/{email_regexp}/obfuscated/ verschleiert

Oder… gehe ich in die falsche Richtung?

Das ist der richtige Weg für mich.

Ich würde PostgreSQL regexp_replace verwenden, um alle E-Mail-Adressen in posts.raw und posts.cooked zu ersetzen.

3 „Gefällt mir“

Das werde ich machen und die HOWTO in diesem Thema veröffentlichen. Danke für den Tipp!

:warning: Stellen Sie sicher, dass Sie Discourse sichern, bevor Sie das Folgende versuchen :warning:

So ersetzen Sie alle E-Mail-Adressen in Beiträgen durch [email_redacted]. Der reguläre Ausdruck ist eher begrenzt und wird wahrscheinlich einige übersehen, aber ich bevorzuge einen Ausdruck, den ich beim Ändern des Inhalts aller Beiträge lesen und verstehen kann.

$ ./launcher enter app
/var/www/discourse# su - postgres -c psql
psql (13.2 (Debian 13.2-1.pgdg100+1))
Geben Sie „help