Der Umgang mit geschlossenen Plugins aus dem Plugin-Verzeichnis

Ich bin mir sicher, dass ihr alle Plugins aus dem offiziellen Plugin Directory verwendet. Alle diese Plugins werden bei der Einreichung geprüft, bevor sie online gehen. Sollten sie in den letzten zwei Jahren nicht aktualisiert worden sein, kann man sie über die Suche nicht mehr finden (man kann sie aber weiterhin downloaden, sofern man den Direktlink noch kennt). Aber habt ihr euch mal gefragt was passiert, wenn ein Plugin geschlossen und aus dem Plugin-Directory entfernt wurde, aus welchem Grund auch immer?

Ein potentielles Sicherheitsrisiko

Ein Plugin kann aus verschiedenen Gründen geschlossen und/oder entfernt werden. Aktuell sind folgende Gründe denkbar:

  • Security Issue
  • Author Request
  • Guideline Violation
  • Licensing/Trademark violations
  • Merged into Core

Zwei meiner eigenen Plugins werden wohl auch bald geschlossen werden, da ihre Funktionalität entweder bereits im Core gelandet ist oder dieses in naher Zukunft passieren wird. In diesen Fällen ist es also nicht unbedingt kritisch, wenn diese weiterhin installiert und aktiviert sind, sofern sie sich nicht mit den Core-Funktionen ins Gehege kommen. Aber was ist mit Plugins, die ein Sicherheitsrisiko darstellen können? Das ist ein echtes Problem.

Keine Benachrichtigung der Nutzer

Wenn ein Plugin geschlossen wird, werden die Nutzer, die es noch installiert (und vielleicht sogar aktiviert) haben darüber nicht informiert. Selbst wenn der Pluginautor also einen Weg gefunden hat, die Sicherheitslücke zu schließen, würde kein Nutzer davon profitieren, da der einzige Weg einer Aktualisierung, der über das Plugin-Directory, nicht mehr existiert. In der Zwischenzeit sind alle Websites mit der alten Version potentiell für Hacker angreifbar.

Ein Plugin als Rettung

Da dieses Problem schon eine ganz Weile besteht und das Plugin-Team bisher noch mit keiner schnellen Lösung dienen konnte, wurde das Plugin No Longer in Directory veröffentlicht. Wenn man es installiert und auf dessen Einstellungsseite geht, bekommt man eine Liste aller Plugins angezeigt, die seit mehr als zwei Jahren nicht mehr aktualisiert wurden sowie eine Liste aller Plugins, die nicht im Plugin-Directory gefunden werden konnten.

Diese zweite Liste würde aber auch Plugins auflisten, die niemals im Plugin-Directrory veröffentlicht waren. Das sind beispielsweise Premium-Plugin oder Plugins, die man speziell für ein Kundenprojekt entwickelt hat. Die Lösung ist also auch nicht optimal.

Ein neuer Weg geschlossene Plugins hervorzuheben

Über die “Ideas” Seite auf WordPress.org wurde daher eine ganze Weile zu diesem Thema diskutiert. Gestern hat das Meta/Plugin-Team auf dem Contributor Day des WordCamp US angekündigt, dass gerade hart an einer Lösung gearbeitet wird. Sie haben hierzu ein paar Mockups im entsprechenden Trac-Ticket veröffentlicht und auch ein erstes Beispiel für die Ansicht eines geschlossenen Plugins existiert bereits. Vorher wurde beim Aufruf eines geschlossenen Plugins eine 404 Fehlerseite angezeigt ohne einen Hinweis darauf, dass dieses Plugin mal existiert hat und warum es geschlossen/entfernt wurde.

Fazit

Der Umgang mit geschlossenen und entfernen Plugins ist sehr wichtig und sollte in einer transparenten Art und Weise passieren, damit die Nutzer dieses Plugins über mögliche Sicherheitsprobleme informiert sind, und das Plugin entfernen können, bevor ihre Website gehackt wird. Ich bin mir nicht sicher, ob es zusätzlich möglich sein sollte Plugins direkt zu löschen oder den Nutzern einen Hinweis im Dashboard anzuzeigen. Aber ich hoffe, dass dieses Thema nun etwas mehr Aufmerksamkeit bekommt.

Multisite-Administratoren die Option “Zusätzliches CSS” freischalten

Dieser Blog

This blog runs on a multisite, so I can easily translate all my blost posts using MultilingualPress. Another website on this mutlsite installation is the website for WP Meetup Berlin. On this site, another use has the admin role. With this role you can usually do most of the things an admin on a single site can do. With some exceptions:

  • Updating core, plugins, themes, etc.
  • Adding sites
  • Adding new users
  • Installing plugins
  • Installing themes
  • Using the plugin/theme editor (which you should never do anyways)
  • Use unfiltered HTML
  • Use the custom CSS option in the customizer

This last exceptions really surprised me. I always thought that this would be the only possible option for site admins to change the design of the site (as they can’t install themes or child themes or change their files). But only superadmins have this option.

Enabling the option for site admin

Fortunately, there is a capabilty called `edit_css` you can simply assign to the admins. You can do this using a role management plugin such as Members or you simply install the plugin Multisite Custom CSS which is doing exactly this one thing.

Conclusion

For security reasons, it makes sense to not allow the admins of a multisite website to change the theme files. But not allowing them to edit the Custom CSS in the Customizer doesn’t make sense in my opinion. But using one of the plugins, it’s pretty easy to enable this option.

Den WordPress.org Link aus Meta Widget entfernen

WordPress bring eine Menge Widget mit. Eines dieser Widgets ist das Meta Widget. Wenn man WordPress frisch installiert, wird dieses Widget normalerweise auch in die Sidebar eingefügt. Auf den meisten Seiten wird dieses Widget direkt wieder entfernt, da sein Nutzen nicht gesehen wird. Aber auch manchen Seiten kann es echt praktisch sein. Es hat Link zur Registrierung (falls erlaubt), zur Anmeldung (falls nicht gerade angemeldet), dem RSS-Feed der Beiträge, dem RSS-Feed der Kommentare der aktuellen Seite bzw. des aktuellen Beitrags:

In einer Facebook-Gruppe kam die Frage auf, ob man den Link zur WordPress.org Website im Meta-Widget entfernen können. Glücklicherweise gibt es genau für diesen Link einen Filter. Hierüber kann man den Inhalt des Links ändern oder einfach einen leeren String zurückgeben. Mit einer der “magischen Callback-Funktionen” in WordPress erreicht man das mit einer einzelnen Zeile Code:

add_filter( 'widget_meta_poweredby', '__return_empty_string' );

Mehr braucht es nicht, um den Link zu WordPress.org aus dem Meta-Widget zu entfernen. Ich würde den Links selbst nicht entfernen, aber wenn ihr ihn nicht haben möchtet, könnt ihr einfach diese eine Zeile Code verwenden oder das kleine Plugin, das ich hierzu als Gist veröffentlicht haben.

Den “Geschützt” und “Privat” Präfix bei Beiträgen entfernen

Vor ein paar Wochen hatten wir in einem Projekt die Anfrage, die beiden Präfixe “Privat: ” und “Geschützt: ” vor dem Titel eines Custom Post Types zu entfernen. Wenn ihr nicht wisst, wovon ich gerade rede, lasst es mich kurz erklären.

Die Sichtbarkeit von Beiträgen

Wenn man einen Blogbeitrag schreibt hat man in der Metabox “Veröffentlichen” die Option “Sichtbarkeit”. Normalerweise steht diese immer auf “Öffentlich”. Es gibt aber zwei weitere Optionen: “Passwortgescshützt” und “Privat”. Wenn man die erste Option auswählt, werden Beiträge nur angemeldeten Besuchern angezeigt, egal welche Rolle diese haben. Bei der zweiten Option kann man ein einzelnes Passwort festlegen, das die Beiträge schützt (dieses Passwort wird im Klartext im Beitrag gespeichert).

Änderungen am Beitragstitel

Wenn man einen der beiden Sichtbarkeiten wählt, fügt WordPress einen Präfix “Geschützt: ” oder “Privat: ” vor den Beitragstitel ein, sofern die Funktion the_title() zur Ausgabe verwendet wird. Wie kann man also den Präfix entfernen, wenn man ihn nicht möchte?

Den Präfix über Filter entfernen

Um den Filter zu entfernen können wir einfach die beiden Filter private_title_format und protected_title_format verwenden, um den Beitragstitel solcher Beiträge zu ändern. Hierzu brauchen wir nur diese wenigen Zeilen Code:

function remove_pp_prefix_title_format( $content ) {
    return '%s';
}
add_filter( 'private_title_format', 'remove_pp_prefix_title_format' );
add_filter( 'protected_title_format', 'remove_pp_prefix_title_format' );

Fazit

Mit wenigen Zeilen Code können wir also einfach den Titel von geschützten und privaten Beiträgen ändern. Als die gleiche Frage etwas später in Facebook aufkam, habe daraus ein kleines Plugin gemacht und als Gist veröffentlicht. Kurz danach habe ich aber rausgefunden, dass jemand sogar Plugin im offiziellen Plugin Directory veröffentlicht wurde. Ich hoffe also, dass euch dies auch weiterhelfen kann.

MailChimp ändert Anmeldeformulare auf Single-Opt-in

Eine Freundin, deren WordPress Website ich erstellt habe und die MailChimp für ihren Newsletter verwendet, hat vor ein paar Stunden folgende E-Mail erhalten und mit weitergeleitet:

In dieser E-Mail kündigt MailChimp an, dass ab dem 31. Oktober alle Anmeldeformulare auf eine Single-Opt-in Verfahren umgestellt werden, statt dem bisherigen Double-Opt-in.

Ein riesiges Problem für Websites in Europa

Sie wusste nicht genau, was das für sie bedeutet, aber als ich die E-Mail gesehen habe, konnte ich kaum glauben, was ich da lesen musste. Das Double-Opt-in Verfahren ist das einzige zulässige, bei dem man berechtigt ist, die Empfänger auf der E-Mail-Liste anzuschreiben. Hierzu muss muss jeder Empfänger seine Eintragung in diese Liste “ein zweites Mal bestätigen”, indem er nach dem eigentlichen Anmeldeformular zusätzlich noch auf einen Link in der Willkommens-E-Mail klickt. Nur so wird sicher gestellt, dass der Empfänger sich selbst angemeldet hat und dem späteren Empfang von Newslettern zustimmt.

Viele Unternehmen in den USA oder anderen Teilen der Welt haben dieses Verfahren vermutlich nicht gemocht, führte es doch dazu, dass einige potentielle Empfänger diesen Link niemals geklickt haben und daher auch nicht angeschrieben werden durften. Aber genau dieses Double Opt-in Verfahren ist fundamental wichtig für Europa. Es stellt aktuell den einzigen legalen Weg dar, eine E-Mail-Empfängerliste anzulegen. Jeder Single-Opt-in Verfahren birgt die Gefahr einer Abmahnung oder anderer rechtlicher Konsequenzen. In Deutschland ist das mit dem “Gesetz gegen den unlauteren Wettbewerb” begründet.

Wie kann man das Problem beheben?

Am Ende der E-Mail befindet sich ein Link, der zu einer Einstellungsseite führt, auf der man alle Listen auswählen kann, für die man das Double-Opt-in Verfahren wieder aktivieren möchte:

Ich kann nur jedem Webseitenbetreiber in Deutschland (und wohl auch in allen anderen europäischen Ländern) nur dringend empfehlen, diese Einstellung unverzüglich vorzunehmen.

Update: Solltet ihr die Mail (noch) nicht bekommen haben, versucht mal folgenden Link: https://admin.mailchimp.com/lists/opt-in-status/

Fazit

Selbst wenn MailChimp gute Gründe für diesen Schritt haben sollte, so kann ich dennoch nicht verstehen, wie sie dies auch für bestehende Formulare umsetzen können und wieso sie ihre Kunden gerade einmal eine Woche vorher informieren. Es war schon immer schwierig, um nicht zu sagen gefährlich, MailChimp in Deutschland einzusetzen. Mit dieser Änderung werden sich wohl einige Kunden nach Alternativen wie etwa CleverReach umsehen.

Haftungsausschuss

Ich bin kein Anwalt, daher sind alle Informationen nach besten Wissen und Gewissen geschrieben worden. Kontaktiert also im besten Fall einen Fachanwalt, um eure persönliche Situation einschätzen zu lassen.