Vortrag "WordPress Professional II" von Sebastian Blum
Vortrag WordPress Professional II
Seit Jahren betreiben wir eine große WordPress-Multi-Installation mit über 50 Domains, gehostet auf einem ausfallsicheren Server-Cluster mit vielen selbstentwickelten Plugins & Themes.
Dieses Know-How möchten wir mit Euch teilen und geben im Vortrag tiefe Einblicke in die folgenden zwei Themengebiete:
WordPress Sicherheit – Wie sichere ich meine Installation ab und was sollte ich beachten?
Learnings aus Themes & Plugins – Wie baue ich eine zukunftssichere und wartbare WordPress-Anwendung auf?
2. 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
4. 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
6. WORDPRESS SECURITY: AKTUELLE LAGE
RANSOMWARE BEFÄLLT NUTZER ÜBER EXPLOIT KITS
▸ TeslaCrypt
Schwachstellen in veralteten CMS / WordPress-Installation
▸ Befall des Besuchers über Exploit Kits
nutzt 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
7. 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
9. 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
11. 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 PHP
oder FTP-Zugang
→ keine Absicherung bei Angriffen
13. 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
14. 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)
15. WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
UMSETZUNG
▸ Update-Modus aktivieren
▸ Live-Modus aktivieren
cd /var/www
chmod -R 0777 ./wordpress
cd /var/www
find ./wordpress -type d -exec chmod 0555 {} ;
find ./wordpress -type f -exec chmod 0444 {} ;
find ./wordpress/wp-content/cache -type d -exec chmod 0755 {} ;
find ./wordpress/wp-content/cache -type f -exec chmod 0655 {} ;
find ./wordpress/wp-content/uploads -type d -exec chmod 0755 {} ;
find ./wordpress/wp-content/uploads -type f -exec chmod 0644 {} ;
19. WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Ordner-Auflistung deaktivieren
▸ Direktzugriff nur für bestimmte Dateitypen erlauben
Options All -Indexes
Order deny,allow
Deny from all
<Files ~ ".(css|doc|docx|gif|jpe?g|js|odf|pdf|png|rar|rtf|xls|xlsx|⤸
xml|zip)$">
Allow from all
</Files>
20. WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Login nur nach Passworteingabe
▸ Zugriff auf wp-includes Ordner blockieren
<Files wp-login.php>
AuthType Basic
AuthName "Restricted Admin-Area"
AuthUserFile /pfad/zur/.htpasswd
Require valid-user
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
</IfModule>
21. WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Zugriff auf wp-config.php blockieren
▸ Zugriff auf .htaccess-Dateien blockieren
<files ~ "^.*.([Hh][Tt])">
Order allow,deny
Deny from all
Satisfy all
</files>
<files wp-config.php>
Order allow,deny
Deny from all
</files>
22. 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!
24. 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
26. VORTRAG 2015: WORDPRESS PROFESSIONAL I
RÜCKBLICK: LETZTES JAHR
▸ Unterscheidungen von
▸ Default-Themes
▸ Starter-Themes
▸ Child-Themes
▸ Vollwertige Themes
▸ Den jeweiligen Einsatzzweck
27. 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
31. 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
33. 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
35. 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
37. 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
38. WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
BILDUNG-FUER-FLUECHTLINGE.DE: BACKEND
▸ Auswahl
▸ Textfeld
▸ Bild-Upload
▸ Standort (Google Maps)
39. WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
BILDUNG-FUER-FLUECHTLINGE.DE: FRONTEND
▸ Kontaktdaten
▸ Standort (Google Maps)
40. 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
46. 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
47. WORDPRESS PROFESSIONAL II
DANKE FÜR DIE AUFMERKSAMKEIT
▸ Sebastian Blum
sb@sblum.de
▸ Präsentation auf unserer Webseite
lj https://www.sblum.de/seocampixx