Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte...

45
Sicherheit und Skalierbarkeit im E-Business OXID Partnertag | 09.10.2007 | Björn Schotte

Transcript of Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte...

Page 1: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

Sicherheit und Skalierbarkeit im E-BusinessOXID Partnertag | 09.10.2007 | Björn Schotte

Page 2: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 2

„Sicherheit/Skalierbarkeit“

Wer bin ich?

Been there, done that:❙

Internet seit 1993/94

PHP seit 1997❙

PHP-Center.de

PHP Magazin❙

PHP Konferenz

Faible für skalierbare & sichere Applikationen

Page 3: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 3

„Sicherheit/Skalierbarkeit“

Wer ist Mayflower?

Deutschlands größter LAMP Dienstleister❙

>40 Mitarbeiter

35 OXID eShop EE zertifizierte Entwickler❙

Geschäftsbereiche:❙

Premium Software Development

Beratung/Training❙

Support

E-Commerce❙

Kunden❙

Premiere/T-Systems, neckermann.de Siemens, Vaillant Group, Telefónica, O2, e-fellows, sevenload, studiVZ, UnitedInternet, Deutsche Bank, HypoVereinsbank, …

Page 4: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 4

„Sicherheit/Skalierbarkeit“

Mayflower GmbH – Security Expertise

tiefes KnowHow im Bereich PHP und JS Security❙

Security Tool Chorizo! https://chorizo-scanner.com/

Security Audits sowie Zertifizierung, Security Trainings

Page 5: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 5

„Sicherheit/Skalierbarkeit“

Agenda Security

JavaScript-Injections und Ajax (XSS)❙

Bedeutung und Verbreitung von XSS

Was sind JavaScript Injections?❙

Warum Web 2.0 und XSS besonders wehtut

Ajax / Web 2.0 Probleme❙

Xml HTTP Request, Toolkits, JSON

Ajax-Malware: XSS-Würmer und Viren❙

Kurze Virengeschichte

Web 2.0, Viren und Würmer ❙

Ajax-Malware: Web 2.0-Attacken❙

Browser Zombies

Intranet-Attacken❙

Ajax-Applikationen absichern

Page 6: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 6

„Sicherheit/Skalierbarkeit“

Agenda Performance❙

Mind your SQL❙

Falsches SQL ist oftmals ein Bottleneck

mehr SQL ist besser❙

Achtung: Applikationsdesign!❙

Kapselung in Objekten (Design Patterns)

Saubere Auftrennung in Schichten (MVC Pattern)❙

Komponenten-orientierte Bauweise (SOA?)

Hilfe, die Session klemmt!❙

Weitere Tools❙

memcached

lighttpd❙

Y!Slow

Bytecode Caches❙

JMeter – Nutzersimulation, Performance Messung

Projektmethodiken: Continuous Integration & Continuous Inspection

Page 7: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 7

„Sicherheit/Skalierbarkeit“

Zitate zu XSS

Symantec Internet Security Thread Report:❙

69% aller Vulnerabilities passieren in Webapplikationen

Web 2.0 und AJAX Sicherheitsprobleme werden wichtiger❙

Mitre Corporation CVE Datenbank: ❙

21.5 % aller Lücken sind XSS-Lücken

Von „low“ über „medium“ zu „high“ risk❙

„XSS is the new hotness!“ Billy Hoffman, SPI

Page 8: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 8

„Sicherheit/Skalierbarkeit“

Wer ist alles betroffen?

z.B. die Website einer Konferenz:❙

http://ajaxinaction.software-support.biz/

Angela Merkels Rücktritt:❙

Bundesregierung.de

Spiegel❙

Financial Times Deutschland

Stern

Page 9: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 9

„Sicherheit/Skalierbarkeit“

Warum Web 2.0 und XSS besonders wehtut

Mehr Logik im Client❙

MVC: bis zu 100% von View und Controller können im Browser stattfinden

Professionelle GUI-Erstellung mit JavaScript-Widgets und Komponenten

Wachsendes JavaScript-Knowhow❙

Mehr und neue Möglichkeiten für XSS

Neue Vektoren❙

Toolkits

JSON ❙

RSS

REST / SOAP

Page 10: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 10

„Sicherheit/Skalierbarkeit“

Wie Cross-Site-Scripting(XSS) funktioniert

Same-Origin-Policy❙

Wenn eine Seite JavaScript mitliefert, dann ist dieses JavaScript vertrauenswürdig

Es darf die Seite ändern❙

Daten vom gleichen Host können gelesen werden

XSS verletzt diese Policy❙

Es kann JavaScript in den aktuellen Seitenkontext eingeschmuggelt werden

Es können beliebige Requests aus- geführt werden

es können lokale Daten ausgelesen werden

Page 11: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 11

„Sicherheit/Skalierbarkeit“

Fortgeschrittene XSS-Exploits

Password-Diebstahl❙

Firefox Password-Safe gespeichert wird (Host, Feldname, Wert) -> wird nach dem onLoad des Dokuments befüllt

Ein Login-Formular❙

.. und wie man es ausliest

Datenspionage❙

CSS-History Hack per Stylesheet

Firefox-Plugins per chrome-img-onError

Page 12: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 12

„Sicherheit/Skalierbarkeit“

XSS Filter und wie man sie umgeht

Es existiert eine Vielzahl von Filtern in Anwendung und Firewall

Problem: HTML soll möglich sein, JavaScript aber nicht❙

Klassische Filter-Evasions:❙

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">

<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD 5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">

Code-Page-basierte Filter Evasions❙

UTF-7 (Google XSS-Hack)

Variable-Width Encoding Evasions❙

Toolkit-basierte Filter Evasions❙

Dojo: dojoAttachEvent

Page 13: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 13

„Sicherheit/Skalierbarkeit“

Exploiting Ajax

Page 14: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 14

„Sicherheit/Skalierbarkeit“

XmlHTTPRequest-Sicherheit

Sicherheitskonzept hinter XmlHTTPRequest:❙

Same-Origin-Policy

Ähnlich Java-Sandbox❙

Umgehen der Host-Begrenzung❙

DNS-Pinning❙

Wechsel der IP zwischen den Requests

Proxy-Request-Spoofing❙

Eine Seite ohne XSS: ❙

http://phprojekt.com/demo/

Trotzdem kann man einen XSS einschmuggeln:❙

Web Cache Poisoning Url

Page 15: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 15

„Sicherheit/Skalierbarkeit“

JavaScript / Toolkit Manipulation

Vollständiger Vertrauensverlust in JavaScript❙

Nutzer-Variablen und Funktionen

Systemfunktionen und Methoden❙

Formulare und (Hidden-)Variablen

Content, Cookie, …❙

Beispiel: Überschreiben von alert()

old_alert = alert; function myalert(str) {

old_alert('myalert: '+str); } alert = myalert; alert('Test');

Prototype.js: Ajax.Request = myRequestMITM

Page 16: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 16

„Sicherheit/Skalierbarkeit“

JSON

JavaScript Object Notation❙

If JSON were Food it would be Sushi

Beispiel: { "type": "menu", "value": "File", "items": [ {"value": "New", "action": "CreateNewDoc"}, {"value": "Open", "action": "OpenDoc"}, {"value": "Close", "action": "CloseDoc"} ] }

Vorteil: kann direkt in in JavaScript evaluiert werden❙

Nachteil: kann direkt in JavaScript evaluiert werden

Zusätzlicher Vektor zum Einschleusen von JavaScript

Page 17: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 17

„Sicherheit/Skalierbarkeit“

JavaScript-Malware

Willkommen im Browser: Viren, Intruder, Spyware und Trojaner

Page 18: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 18

„Sicherheit/Skalierbarkeit“

Kleine Virengeschichte

1949: John von Neumann prophezeit sich replizierende Software

1986: der erste PC-Virus verbreitet sich❙

1992: Michelangelo-Virus – der erste „Medien-Virus“

1995: Script-Viren im Mail-Client (Outlook/Express)❙

1998: Melissa-Wurm in Outlook

2004: Web Application Würmer❙

2005: MySpace-Virus: Samy is my hero

2006: Ihre Ajax-Applikation (just FUDding)

Page 19: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 19

„Sicherheit/Skalierbarkeit“

Was sind Web 2.0 Würmer/Viren?

Ort: Innerhalb einer/mehrerer Webapplikationen❙

Infizierung per XSS und AJAX

Verbreitung per AJAX, Formular, Link, RSS❙

Der Browser führt den Virus aus

Applikation ist Speicherort des Virus❙

Der erste wirkliche Cross-Platform-Virus!

Kritische Payloads sind möglich❙

Datenänderung

Datenspionage (Kreditkarten usw)❙

Durchführung von Transaktionen (Aktienkauf)

Wer von Ihnen loggt sich immer aus?❙

Auch bei Google Mail?

Bei vorhandenen Logins kann im Hintergrund infiziert werden

Page 20: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 20

„Sicherheit/Skalierbarkeit“

XSS-Würmer und Viren

Warum funktionieren Viren auf Web 2.0?❙

LAW – Die Nutzer stellen Inhalte für Nutzer (lokale Vermehrung)

Mash-Ups – Es werden Applikationsteile von anderen Websites eingebunden (verteile Vermehrung)

Neue Verbreitungswege wie RSS, SOAP, REST (verteilte Vermehrung)

Ajax-Möglichkeiten stehen auch Hackern offen (Infizierung und Vermehrung)

Es gibt mehr Schnittstellen zwischen Client und Server(n) (mehr Möglichkeiten zur Infizierung)

Page 21: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 21

„Sicherheit/Skalierbarkeit“

Samy is my Hero – der MySpace Wurm

MySpace, zu dem Zeitpunkt 5-wichtigste Internetseite weltweit

Samy hatte nur 73 Freunde. Zu wenig.❙

Aber er hatte JavaScript-Knowhow.❙

JavaScript im eigenen Profil, daß Samy per XmlHTTPRequest zum Freund macht

MySpace war vorbereitet: ❙

Guter JavaScript-Filter

- aber mit Filter-Evasions!❙

CSRF-Schutz per ZufallsHash

- per XHR umgangen!❙

Nach 20 Stunden hatte Samy mehr als 1.000.000 Freunde!

Page 22: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 22

„Sicherheit/Skalierbarkeit“

Browser Zombies

JavaScript bedeutet Kontrolle über den Browser

JavaScript muss nicht statisch sein❙

Es könnte auch ein Mensch auf der anderen Seite sein, oder ein intelligentes Script

Besuchen Sie uns! http://mayflower.de/

Wir besuchen Sie auch! Browser Exploitation Framework

COMET!

Page 23: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 23

„Sicherheit/Skalierbarkeit“

Intranet-Attacken

Hinter der Firewall ist das Paradies❙

Ungepatchte Software

Default-Passworte❙

Ungeschützte Dienste

Aber: das Intranet kann gescannt werden❙

1. die lokale Adresse ermitteln

2. das lokale Class-C-Netz auf Port 80 scannen❙

Erkennung der Infrastruktur

Individuelle Attacken❙

Siehe Proxy-Exploit

bekannte Lücken: Linksys-WRT-Router❙

http://fritz.box/

Page 24: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 24

„Sicherheit/Skalierbarkeit“

Ajax Applikationen sichern

Page 25: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 25

„Sicherheit/Skalierbarkeit“

Status bei Web 2.0 Sicherheit

XSS ist kein kleines Risiko mehr❙

mehr Funktionalität im Client bedeutet mehr Potentielle Lücken

Um so mehr JavaScript kann, um so mehr kann auch XSS

JavaScript- und integrierte Toolkits haben regelmässig Lücken

Alle 2 Monate eine neue XSS-Lücke bekannt❙

„Security is a process, not a product“

Page 26: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 26

„Sicherheit/Skalierbarkeit“

Strategien zur Sicherung

Der Weg zu 100-prozentiger Sicherheit im Web:❙

25% Web Application Firewalls wie mod_security

25% Web Security Scanner❙

25% Source Code Audits und Entwicklung mit Security in Mind

… da fehlt doch was❙

Vermeidung von kritischen Funktionalitäten❙

HTML-Eingaben

Vertrauen auf externe Quellen

Page 27: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 27

„Sicherheit/Skalierbarkeit“

Sichern von Anwendungen

Dem Client nicht vertrauen:❙

Header, Cookies, Get, Post

Auch nicht der Applikationslogik im Client❙

Daten Filtern:❙

Formate erzwingen: ❙

Es sind nur bestimmte Zeichen valide (0-9,)

Es ist nur ein Format gültig (089/24 20 54 13)❙

Es ist nur eine bestimmte Länge möglich

Bei Nutzung escapen❙

Entities für HTML

Hochkomma für SQL❙

Slashes für JavaScript

Meist in einer Zeile machbar❙

Im Falle PHP: mit Suhosin PHP abhärten

Page 28: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 28

„Sicherheit/Skalierbarkeit“

Fazit Security

JavaScript etabliert sich als Angriffsplattform❙

Die Möglichkeiten und Gefahren von JavaScript-Malware werden zur Zeit deutlich unterschätzt

Es wird mehr Viren und Würmer auf Web-Applikationen geben

Sie werden Applikations- und Domainübergreifend sein❙

Es wird gezielte XSS-Attacken geben

Intranet-Attacken werden über JavaScript stattfinden❙

Sicherheit wird bei der Applikationsentwicklung fürs Web in der Vordergrund rücken

Page 29: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 29

„Sicherheit/Skalierbarkeit“

Skalierbare Webanwendungen, SQL Tuning (I)

Mind your (My)SQL!❙

Probleme oftmals bei schlecht designten Tabellen oder SQL Abfragen

EXPLAIN SELECT …❙

Replikation (Master zum Schreiben, Sklaven zum Lesen)❙

1 Master, n Slaves oder n Master, n Slaves (Multi- Master Setup) – verteilt auf n Datacenter

MySQL Proxy!

Page 30: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 30

„Sicherheit/Skalierbarkeit“

SQL Tuning (II)

Clustering (In-Memory Cluster, disk based Cluster soon)❙

Partitionierung❙

Auf dem gleichen Server

Lösung: Sharding! ( + MySQL Proxy)❙

Mehr SQL❙

Primary Keys -> SELECT der IDs, dann iteratives Auslesen der Datensätze

… zusätzlich MySQL Certification zur Sicherung der eigenen Ausbildung

Page 31: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 31

„Sicherheit/Skalierbarkeit“

MySQL Proxy

MySQL, fly light!❙

klein und schlank

Query interceptor❙

Sitzt zwischen Client (z.B. PHP) und dem MySQL Server

Query Manipulation leicht gemacht❙

per lua scriptbar

Applikationen auf Master-Slave Setups hieven ohne Änderung am Programmcode

Sharding – ohne Änderung am Programmcode❙

noch Alpha – viele Tester gesucht!

Page 32: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 32

„Sicherheit/Skalierbarkeit“

Applikationsdesign

Design-Patterns (Factory, Decorator, Singleton, …)❙

Komponenten-orientierte Bauweise❙

leichterer Überblick

einfache Wartbarkeit❙

schnell erweiterbar

… lässt sich später einfacher verteilen❙

SOA Architektur (SOAP, XML-RPC, JSON, …)

Integration mit anderen Sprachen

Wegbereiter für mehr Performance

Page 33: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 33

„Sicherheit/Skalierbarkeit“

Hilfe, die Session klemmt!

Clustering?❙

Load Balancer mit „Session Affinity“ und file-basierten Sessions

Sessions in der Datenbank ablegen *hüstel*❙

Sessions per ZendPlatform Session Clustering + Session Cache verteilen

Sessions per memcached verteilen

… Ausflug nach memcached in der nächsten Folie

Page 34: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 34

„Sicherheit/Skalierbarkeit“

memcached

„a distributed memory object caching system“❙

Connect via Socket

Ablage von Daten❙

memcached selbst ist cluster-fähig❙

n Server, die nur memcached machen

Große Sites nutzen memcached extensiv, z.B.❙

Ablage von Session Daten

Ablage fürs Content-Caching

Page 35: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 35

„Sicherheit/Skalierbarkeit“

lighttpd – fly light! (I)

Es muss nicht immer Apache sein❙

Stark skalierender Webserver, speziell für statische Dateien – single process,Top5 der Netcraft Statistik

Besonders gut bei statischen Dateien (Produktbilder, CSS, JavaScript) und Flash Videostreams

auch gut in Kombination mit PHP (FastCGI SAPI)❙

kann load-balancing

Beispielkonfigurationen:❙

1 lighttpd Server, n PHP „Applikationsserver“

1 lighttpd Server, n Apache Server (reverse Proxy)

Cluster aus lighttpd Servern

Page 36: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 36

„Sicherheit/Skalierbarkeit“

lighttpd – fly light (II)

lua – World of Warcraft?❙

Content-Caching mit lua

PHP muss dann nicht mehr ausliefern❙

PHP kann lighttpd „benachrichtigen“ (per MySQL UDF)

http://blog.thinkphp.de/archives/121-Methods-to- reduce-the-load-of-your-webserver-by-caching- content-using-lighttpd,-MySQL-UDF,-LUA-and-speed- everything-up..html

leicht konfigurierbar❙

http://www.lighttpd.net/

Page 37: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 37

„Sicherheit/Skalierbarkeit“

Performance Optimierungen für den Client

Y!Slow❙

Extension für Firebug (Extension für Firefox)

Bewertung von zum Beispiel Ladezeiten einzelner Bilder oder Elemente (CSS, JS, …)

Bewertung von sinnvoll oder sinnlos gesetzten HTTP Headern

Entwickelt von Yahoo! (daher „Y!“)❙

Eingeteilt nach 13 simplen Performanceregeln

Einteilung in Grade A bis F (A = Top, F = Flop)

Page 38: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 38

„Sicherheit/Skalierbarkeit“

Bytecode Caching

APC❙

ZendPlatform (bei OXID EE dabei)

eAccelerator

Sollte Standard in jeder Installation sein

Page 39: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 39

„Sicherheit/Skalierbarkeit“

Nutzersimulation mit JMeter

Erster Gedanke: Apache Bench (ab)❙

Hilft jedoch nicht viel, weil es nur stumpf Requests abfeuert

Lösung: Tools wie JMeter❙

Nutzersimulation

Aufzeichnung von HTTP Requests❙

Nutzer klickt sich durch den Shop

legt Produkt in den Warenkorb❙

Macht einen Checkout

Virtuelles „Ausschwärmen“ der Nutzer❙

RampUp Phasen etc.

Beispiel: Performance-Bottleneck in MySQL View durch JMeter gefunden

Page 40: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 40

„Sicherheit/Skalierbarkeit“

Continuous Integration - Einführung

Kontinuierliche Integration – besonders bei Entwicklung im Team

auf Basis von CruiseControl (Java-basiert)❙

mit eigenentwickelten AddOns & 3rd party tools❙

Zend CodeAnalyzer

Coding Guideline Check❙

Selenium Tests inkl. Screenshots

Code Browser❙

Code Coverage

Code Metriken❙

PHP Doc Output

CVS Stats❙

Copy & Paste Detection

Page 41: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 41

„Sicherheit/Skalierbarkeit“

Continuous Integration – was bringt es?

Komfort – „Non-Event“❙

Analysen, Inspektion und „Wächter“-Funktion

Konzept des „Builds“, das vieles machen kann (z.B. nach jedem Commit Tests, Analysen & Inspektion)

Browserakzeptanztests mit Selenium (z.B. 1x täglich)

Nutzersimulationen für Performance Tests (z.B. 1x wöchentlich)

Absicherung und Qualitätssicherung❙

während des Developments

vor Releases❙

in Produktion

Page 42: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 42

„Sicherheit/Skalierbarkeit“

CruiseControl – Beispiele (I)

Page 43: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 43

„Sicherheit/Skalierbarkeit“

Cruise Control – Beispiele (II)

Page 44: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

© MAYFLOWER GmbH 2007 44

„Sicherheit/Skalierbarkeit“

Cruise Control – Beispiele (III)

Page 45: Sicherheit und Skalierbarkeit im E-Business - Mayflower Blog · 35 OXID eShop EE zertifizierte Entwickler Geschäftsbereiche: Premium Software Development Beratung/Training Support

Vielen Dank für Ihre Aufmerksamkeit

Björn SchotteMayflower GmbH Pleichertorstr. 2 97070 Würzburg+49 (931) 35 9 65 - [email protected]