Wordpress professional-ii

47
WORDPRESS PROFESSIONAL II SEBASTIAN BLUM

Transcript of Wordpress professional-ii

Page 1: Wordpress professional-ii

WORDPRESS PROFESSIONAL IISEBASTIAN BLUM

Page 2: Wordpress professional-ii

WORDPRESS PROFESSIONAL II

AGENDA WORDPRESS PROFESSIONAL II

▸ Security

▸ Aktuelle Lage ▸ Best Practices

Automatische Updates und Zugriffsbeschränkung

▸ Environment

▸ Themes ▸ Custom Post Types ▸ (Micro-) Plug-Ins

Page 3: Wordpress professional-ii

WORDPRESS SECURITYTEIL 1

!

Page 4: Wordpress professional-ii

IT macht Arbeit nicht billiger, sondern in der Regel nur schneller. Wenn man Geschwindigkeit nicht immer benötigt, sollte man auf IT auch mal verzichten können.

Klemens Kowalski, kowabit.de

WORDPRESS SECURITY

Page 5: Wordpress professional-ii

WORDPRESS SECURITY AKTUELLE LAGE

Page 6: Wordpress professional-ii

WORDPRESS SECURITY: AKTUELLE LAGE

RANSOMWARE BEFÄLLT NUTZER ÜBER EXPLOIT KITS

▸ TeslaCryptSchwachstellen in veralteten CMS / WordPress-Installation

▸ Befall des Besuchers über Exploit Kitsnutzt Lücken in Adobe Flash Player, Internet Explorer und Adobe Acrobat (Reader)

▸ Verschlüsselt alle Dateien (lokale und in Netzwerkfreigaben)→ Gefahr für Nutzer mit veralteter Software → Regelmäßig Updates und Security-Fixes installieren

Page 7: Wordpress professional-ii

WORDPRESS SECURITY: AKTUELLE LAGE

WORDPRESS AUF 26% ALLER INTERNETSEITEN

▸ Oftmals …

▸ … kein HTTPS für Backend (WP-Admin)

▸ … Standardbenutzer und einfache Passwörter

▸ … (zu viele) Plug-Ins aktiviert

Page 8: Wordpress professional-ii

WORDPRESS SECURITY: AKTUELLE LAGE

RANSOMWARE BEFÄLLT AUCH WEBSERVER

Page 9: Wordpress professional-ii

WORDPRESS SECURITY: AKTUELLE LAGE

RANSOMWARE BEFÄLLT AUCH WEBSERVER

▸ CTB-Locker„Your personal files are encrypted by CTB-Locker. Your scripts, documents, photos, databases and other important files have been encrypted with strongest encryption algorithm AES-256 and unique key, generated for this site.“→ Wiederherstellung (bisher) unmöglich→ Externe Backups regelmäßig erstellen

Page 10: Wordpress professional-ii

WORDPRESS SECURITY AUTOMATISCHE UPDATES

Page 11: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

PROBLEM

▸ WordPress Core und Plug-Ins sollten regelmäßig aktualisiert werden

▸ Theoretisch kein Problem:WordPress kann automatisch aktualisieren

▸ Automatische Updates benötigen Schreibrechte für PHPoder FTP-Zugang→ keine Absicherung bei Angriffen

Page 12: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

LÖSUNG

▸ Unix-Rechteverwaltung sinnvoll nutzenStandardwerte: Ordner = 755, Dateien = 644

▸ 7 6 4 rwx rwx rwxBesitzer Gruppe Sonstige

▸ Live-Modus

▸ Rechte Ordner (chmod 555), Rechte Dateien (444)→ PHP kann keine Dateien / Ordner schreiben

Page 13: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

LÖSUNG

▸ Update-Modus

▸ Rechte Dateien / Ordner (777) → PHP kann Dateien / Ordner schreiben und ausführen

▸ Vorgehen

▸ Rechte werden nur für die Zeit der Updates gesetzt

▸ Benutzer können zusätzlich angepasst werden, jedoch

▸ Einschränkungen beim Shared Hosting ▸ PHP-CGI-Prozesse laufen oftmals mit Standardbenutzer

Page 14: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

UMSETZUNG

▸ Shared-Hosting mit Cronjobs und SSH

▸ all-inkl: ab Premium-Paket ▸ domainfactory: ab Professional-Paket ▸ STRATO: ab PowerWeb Plus

▸ Eigener Server

▸ Cronjobs über crontab ▸ Jobs mit Jenkins (continuous integration)

Page 15: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

UMSETZUNG

▸ Update-Modus aktivieren

▸ Live-Modus aktivieren

cd/var/wwwchmod-R0777./wordpress

cd/var/wwwfind./wordpress-typed-execchmod0555{}\;find./wordpress-typef-execchmod0444{}\;find./wordpress/wp-content/cache-typed-execchmod0755{}\;find./wordpress/wp-content/cache-typef-execchmod0655{}\;find./wordpress/wp-content/uploads-typed-execchmod0755{}\;find./wordpress/wp-content/uploads-typef-execchmod0644{}\;

Page 16: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

UMSETZUNG

▸ WP-CLI herunterladen

▸ Updates installieren

cd~curl-Ohttps://raw.githubusercontent.com/wp-cli/builds/gh-pages⤸/phar/wp-cli.pharchmod+xwp-cli.phar

./wp-cli.pharcoreupdate--path=/var/www/wordpress(--debug)

./wp-cli.pharcoreupdate-db--path=/var/www/wordpress

./wp-cli.pharpluginupdate--all--path=/var/www/wordpress

./wp-cli.pharthemeupdate--all--path=/var/www/wordpress

Page 17: Wordpress professional-ii

WORDPRESS SECURITY: AUTOMATISIERTE UPDATES

ÜBER DEN TELLERRAND

▸ Zusätzliche ÜberprüfungTools suchen nach SchwachstellenWPScan: http://wpscan.org/wprecon: http://wprecon.com/

▸ Jens Altmann Samstag Vortrag: Secure your company

Page 18: Wordpress professional-ii

WORDPRESS SECURITY ZUGRIFFSBESCHRÄNKUNG

Page 19: Wordpress professional-ii

WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG

.HTACCESS-DATEIEN BEI APACHE-WEBSERVER

▸ Ordner-Auflistung deaktivieren

▸ Direktzugriff nur für bestimmte Dateitypen erlauben

OptionsAll-Indexes

Orderdeny,allowDenyfromall<Files~".(css|doc|docx|gif|jpe?g|js|odf|pdf|png|rar|rtf|xls|xlsx|⤸xml|zip)$">Allowfromall</Files>

Page 20: Wordpress professional-ii

WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG

.HTACCESS-DATEIEN BEI APACHE-WEBSERVER

▸ Login nur nach Passworteingabe

▸ Zugriff auf wp-includes Ordner blockieren

<Fileswp-login.php>AuthTypeBasicAuthName"RestrictedAdmin-Area"AuthUserFile/pfad/zur/.htpasswdRequirevalid-user</Files>

<IfModulemod_rewrite.c>RewriteEngineOnRewriteBase/RewriteRule^wp-admin/includes/-[F,L]RewriteRule!^wp-includes/-[S=3]RewriteRule^wp-includes/[^/]+\.php$-[F,L]</IfModule>

Page 21: Wordpress professional-ii

WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG

.HTACCESS-DATEIEN BEI APACHE-WEBSERVER

▸ Zugriff auf wp-config.php blockieren

▸ Zugriff auf .htaccess-Dateien blockieren<files~"^.*\.([Hh][Tt])">Orderallow,denyDenyfromallSatisfyall</files>

<fileswp-config.php>Orderallow,denyDenyfromall</files>

Page 22: Wordpress professional-ii

WORDPRESS SECURITY: LEARNINGS

ZUSAMMENFASSUNG

▸ Möglichst wenig (Schreib-) Rechte für Web-Server

▸ Updatebarkeit ist Schutz und Risiko gleichzeitig

▸ Externe Backups notwendig

▸ Dateien: ohne Schreibrechte für Web-Server ▸ Datenbank: komplette Dumps

▸ Schwächstes Glied in Kette beachten!

Page 23: Wordpress professional-ii

WORDPRESS ENVIRONMENTTEIL 2

"

Page 24: Wordpress professional-ii

WORDPRESS PROFESSIONAL II

AGENDA WORDPRESS PROFESSIONAL II

▸ Security

▸ Aktuelle Lage ▸ Best Practices

Automatische Updates und Zugriffsbeschränkung

▸ Environment

▸ Themes ▸ Custom Post Types ▸ (Micro-) Plug-Ins

Page 25: Wordpress professional-ii

WORDPRESS ENVIRONMENTTHEMES

Page 26: Wordpress professional-ii

VORTRAG 2015: WORDPRESS PROFESSIONAL I

RÜCKBLICK: LETZTES JAHR

▸ Unterscheidungen von

▸ Default-Themes ▸ Starter-Themes ▸ Child-Themes ▸ Vollwertige Themes

▸ Den jeweiligen Einsatzzweck

Page 27: Wordpress professional-ii

WORDPRESS ENVIRONMENT: THEMES - THEME OPTIONS

THEME OPTIONS: DESIGN ANPASSEN

▸ Wechsel zwischen Themes, die alle Theme Options unterstützen, sollte möglich sein (Beispiel: Jedes Theme von wordpress.com)

▸ Ziel: Optionen Theme-übergreifend zu standardisieren

▸ Viele Themes verwenden eigenes Theme Panel→ Theme-Wechsel nur schwer möglich

Page 28: Wordpress professional-ii

VERWENDUNG DER THEME OPTIONS

Page 29: Wordpress professional-ii

VERWENDUNG EINES THEME PANELS

Page 30: Wordpress professional-ii

THEME UNIT TESTSWORDPRESS ENVIRONMENT – THEMES

Page 31: Wordpress professional-ii

WORDPRESS ENVIRONMENT: THEMES - UNIT TESTS

THEME UNIT TESTS

▸ Theme Unit Tests sind möglich

▸ Verbessern deutlich die Qualität von Themes

▸ Mehr Infos unter:https://codex.wordpress.org/Theme_Unit_Test

Page 32: Wordpress professional-ii

Theme Plug-In

Vorteile ‣ Stabiler, dank getesten Versionen

‣ Schnellere Updates ‣ Theme-Wechsel

Nachteile ‣ Abhängigkeit vom Theme

‣ Theme-Lock-In

‣ Updates ‣ Versionskonflikte ‣ Namenkonflikte

WORDPRESS ENVIRONMENT: THEMES

FUNKTIONALITÄT IN THEME ODER PLUG-IN

Page 33: Wordpress professional-ii

WORDPRESS ENVIRONMENT: FAZIT THEMES

FAZIT: FUNKTIONALITÄT IN THEMES

▸ Elegant Themes bringen die Funktionalität im Theme mit

▸ Eigener Page-Builder: Divi Builder ▸ Verwendung der Theme Options → guter Lösungsansatz

▸ Präferieren selbst die Funktionalität in Plug-Ins

▸ Probleme mit Visual Composer Versionskonflikten ▸ Lock-In bei Custom-Post-Types im Theme→ Trennung ermöglicht größere Flexibilität

Page 34: Wordpress professional-ii

WORDPRESS ENVIRONMENTCUSTOM POST TYPE

Page 35: Wordpress professional-ii

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

CUSTOM POST TYPE

▸ Einfach selbst definieren mit Hilfe eines kleinen Plug-Ins

▸ Bringt zusätzliche Dokumentarten mit

▸ Im Child-Theme können Template-Dateien speziell für den Custom-Post-Type erstellt werden

Page 36: Wordpress professional-ii

BEISPIELBILDUNG FÜR FLÜCHTLINGE

Page 37: Wordpress professional-ii

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

BILDUNG-FUER-FLUECHTLINGE.DE

▸ Organisationen mit zusätzlichen Informationen speichern

▸ Kontaktdaten (Auswahl und Textfelder) ▸ Ansprechpartner (Foto) ▸ Standort (Google Maps Karte) ▸ Bereich (Kategorie)

▸ Ausgabe der (gefilterten) Inhalte im Frontend

Page 38: Wordpress professional-ii

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

BILDUNG-FUER-FLUECHTLINGE.DE: BACKEND

▸ Auswahl

▸ Textfeld

▸ Bild-Upload

▸ Standort (Google Maps)

Page 39: Wordpress professional-ii

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

BILDUNG-FUER-FLUECHTLINGE.DE: FRONTEND

▸ Kontaktdaten

▸ Standort (Google Maps)

Page 40: Wordpress professional-ii

WORDPRESS ENVIRONMENT: FAZIT CUSTOM POST TYPES

FAZIT: CUSTOM POST TYPES

▸ Eigene „Dokument-Arten“ mit zusätzlichen Feldern

▸ Bessere semantische Datenspeicherung ▸ Updatebarkeit ohne Inhaltsanpassung ▸ Mit Shortcodes in Widgets platzierbar→ guter Lösungsansatz

▸ Am besten Custom Post Types Definition & Custom Taxonomy selbst mit einem Plugin erstellen

▸ AdvancedCustomFields-Plugin für Verwaltung zusätzlicher Felder im Backend nutzen

Page 41: Wordpress professional-ii

WORDPRESS ENVIRONMENT(MICRO-) PLUG-INS

Page 42: Wordpress professional-ii

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

EINFACHE MICRO-PLUG-INS

▸ Beispiel: sblum-force-httpsAlle verlinkten / verknüpften Inhalte über HTTPS abrufen

▸ Single Responsibility Pattern→ Bietet exakt eine Funktionalität

▸ Einfache Unit-Tests

▸ Keine Konfiguration, keine eierlegende Wollmilchsau

Quelle: Pixelrausch - Wikimedia Commons

Page 43: Wordpress professional-ii

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

SBLUM-FORCE-HTTPS PLUG-IN

▸ Einsatz-Zweck: Umstellung auf HTTPS

▸ Problemstellung

▸ Im Theme / Plug-in werden http:// Assets eingebunden ▸ Interne http-Links in Artikeln

▸ Lösung: Interne Links, CSS, Javascript durch https ersetzen→ Micro-Plug-in für genau diese Anforderung ausreichend

Page 44: Wordpress professional-ii

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

SBLUM-FORCE-HTTPS PLUG-IN

Page 45: Wordpress professional-ii

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

MUST-USE-PLUGIN: FINAL OUTPUT HOOK

Page 46: Wordpress professional-ii

WORDPRESS ENVIRONMENT: FAZIT PLUGINS

FAZIT: PLUG-INS

▸ Einsatz von Micro-Plug-Ins, wenn…

▸ ein Problem zu 100% gelöst werden kann ▸ Performance wichtig (keine aufwendige Konfiguration)

▸ Einsatz von (umfangreichen) Plug-Ins, wenn…

▸ eine Vielzahl von Anforderungen erfüllt werden ▸ Yoast SEO Plug-In ▸ W3 Total Cache

▸ Konfiguration / Anpassung notwendig

Page 47: Wordpress professional-ii

WORDPRESS PROFESSIONAL II

DANKE FÜR DIE AUFMERKSAMKEIT

▸ Sebastian Blum [email protected]

▸ Präsentation auf unserer Webseite# https://www.sblum.de/seocampixx