Download - WordPress Professional II

Transcript
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