WordPress Professional II

Post on 21-Apr-2017

1.933 views 0 download

Transcript of WordPress Professional II

WORDPRESS PROFESSIONAL IISEBASTIAN BLUM

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

WORDPRESS SECURITYTEIL 1

!

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

WORDPRESS SECURITY AKTUELLE LAGE

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

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

WORDPRESS SECURITY: AKTUELLE LAGE

RANSOMWARE BEFÄLLT AUCH WEBSERVER

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

WORDPRESS SECURITY AUTOMATISCHE UPDATES

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

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

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

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)

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{}\;

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

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

WORDPRESS SECURITY ZUGRIFFSBESCHRÄNKUNG

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>

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>

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>

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!

WORDPRESS ENVIRONMENTTEIL 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

WORDPRESS ENVIRONMENTTHEMES

VORTRAG 2015: WORDPRESS PROFESSIONAL I

RÜCKBLICK: LETZTES JAHR

▸ Unterscheidungen von

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

▸ Den jeweiligen Einsatzzweck

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

VERWENDUNG DER THEME OPTIONS

VERWENDUNG EINES THEME PANELS

THEME UNIT TESTSWORDPRESS ENVIRONMENT – THEMES

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

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

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

WORDPRESS ENVIRONMENTCUSTOM POST TYPE

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

BEISPIELBILDUNG FÜR FLÜCHTLINGE

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

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

BILDUNG-FUER-FLUECHTLINGE.DE: BACKEND

▸ Auswahl

▸ Textfeld

▸ Bild-Upload

▸ Standort (Google Maps)

WORDPRESS ENVIRONMENT: CUSTOM POST TYPE

BILDUNG-FUER-FLUECHTLINGE.DE: FRONTEND

▸ Kontaktdaten

▸ Standort (Google Maps)

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

WORDPRESS ENVIRONMENT(MICRO-) PLUG-INS

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

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

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

SBLUM-FORCE-HTTPS PLUG-IN

WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS

MUST-USE-PLUGIN: FINAL OUTPUT HOOK

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

WORDPRESS PROFESSIONAL II

DANKE FÜR DIE AUFMERKSAMKEIT

▸ Sebastian Blum sb@sblum.de

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