Leseprobe - Franz und Cornelia von Soisses - Euroland - Alles oder nichts
Alles in die Session, nichts im Browser!
-
Upload
apets -
Category
Technology
-
view
756 -
download
0
description
Transcript of Alles in die Session, nichts im Browser!
ALLES IN DIE SESSIONNIX IM BROWSER
Stefan Pantke
http://www.meetup.com/phpughh/Mittwoch, 13. Februar 13
∼ ∼ FRAGE I ∼ ∼
WARUM MUSS EINE ANWENDUNG GESCHÜTZT WERDEN?
Mittwoch, 13. Februar 13
AUS FORMALEN GRÜNDEN• Bundesdatenschutzgesetz [BDSG]
• Verbotsprinzip mit Erlaubnisvorbehalt
• Alle personenbeziehbaren Daten sind zu schützen
• Besondere Daten - Ethnische/Rassische Herkunft, politische Meinung, religiöse / philosophische Überzeugung, Gewerkschaftszugehörigkeit, Gesundheit und Sexualleben
• Besondere Daten sind besonders zu schützen
Mittwoch, 13. Februar 13
BDSG
Mittwoch, 13. Februar 13
∼ ∼ FRAGE II ∼ ∼
WOGEGEN MUSS EINE ANWENDUNG GESCHÜTZT WERDEN
Mittwoch, 13. Februar 13
NEULICH BEI D-LINK
Quelle: http://www.heise.de/security/meldung/Sicherheitsalarm-fuer-D-Link-Router-1796519.html
Mittwoch, 13. Februar 13
MEETUP.COM VERSCHICKT E-MAILMIT VERIFIKATIONS-LINKS,
DIE LOGIN DURCHFÜHREN
Mittwoch, 13. Februar 13
OWASP TOPTEN 2010• SQL injection
• Cross site scripting
• Broken authorization-/sessionmngmnt.
• Insecure direct object
• Cross site request forgery
• Security misconfiguration
• Insecure cryptographic storage
• Failure to restrict URL access
• Insufficent transport layer security
• Unvalidated redirects and forwards
Mittwoch, 13. Februar 13
ASSERTIONSEXCEPTIONS
ESCAPING VON QUERIES
INPUT VALIDATION
VERSCHLÜSSELUNG
ANTIQUITÄTEN [MAGIC QUOTES]
ORGANISATION DES FILESYSTEMS
PROTOKOLLIERUNG
Nicht heute
Mittwoch, 13. Februar 13
∼ ∼ SCHON ERLEBT ? ∼ ∼
WENN ANWENDER ZU SCHLAU ODER ZU UNGESCHICKT IST...
Mittwoch, 13. Februar 13
ANWENDER SPEICHERT BOOKMARK ANWENDER GIBT LINK WEITER
ANWENDER EDITIERT URL
• Falls Anwendung mangelhaft implementiert ist, dann
• sieht Anwender oder Dritter Daten, die er nicht sehen darf
• löst Anwender Funktion aus, die die falschen Datensätze manipuliert oder löscht
Mittwoch, 13. Februar 13
∼ ∼ ZEN MEDITATION ∼ ∼
ZIELLOSER ANWENDER KÖNNTE
ZIELGERICHTETER ANGREIFER SEIN
Mittwoch, 13. Februar 13
https://www.owasp.org/index.php/File:2010-T10-ArchitectureDiagram.png
Mittwoch, 13. Februar 13
OWASP TOPTEN 2010• SQL injection
• Cross site scripting
• Broken authorization-/sessionmngmnt.
• Insecure direct object
• Cross site request forgery
• Security misconfiguration
• Insecure cryptographic storage
• Failure to restrict URL access
• Insufficent transport layer security
• Unvalidated redirects and forwards
Mittwoch, 13. Februar 13
∼ ∼ NIX IST KOSTENLOS ∼ ∼
SICHERHEIT VS. BEQUEMLICHKEIT
Mittwoch, 13. Februar 13
∼ ∼ MEHR ALS 99% ∼ ∼
ALLE WEB-ANWENDUNGEN LAUFEN GLEICH AB
Mittwoch, 13. Februar 13
VORWÄRTS UND ZURÜCK
Kunde suchen
Kunde anzeigen
Vertrag hinzufügen
1
2
3
4
Mittwoch, 13. Februar 13
GESPIEGELT UND GEDREHT
Kunde suchen
Kunde anzeigen
Vertrag hinzufügen
1
2
3
4
Kunde suchen
Kunde anzeigen
Vertrag hinzufügen
1
2
3
4
Kunde suchen
Kunde anzeigen
Vertrag hinzufügen
1
2
3
4
Kunde suchen
Kunde anzeigen
Vertrag hinzufügen
1
2
3
4
Mittwoch, 13. Februar 13
1
1.1 1.2 1.3
1
1.1
1.1.21.1.1 1.1.3
1.1.21.1.1
AUSWÄHLEN UND WEITER
Mittwoch, 13. Februar 13
∼ ∼ STANDARD ∼ ∼
AUFGERUFENER PRÜFTDAS WIE DER AUSFÜHRUNG
Mittwoch, 13. Februar 13
∼ ∼ ERWEITERT ∼ ∼
AUFGERUFENER PRÜFTDAS WIE DER AUSFÜHRUNG
AUFRUFER DEFINIERT WANN WAS PASSIEREN DARF
Mittwoch, 13. Februar 13
OK! ABER WIE GEHT ES GENAU?
Mittwoch, 13. Februar 13
Flow
ArtikelID => 485
PersonID => 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
FLOWFlow definiert Controller-Aufruf mit allen Parametern.
CFlow::createFlow()CFlow::addFlowParam()
Mittwoch, 13. Februar 13
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
FLOW
Typehints erzeugen Entitäten bestimmten Typs.
CFlow::addFlowParam()
Mittwoch, 13. Februar 13
FlowGroup
1.1
1.2
1.3
1.4
FLOWGROUP
Definiert Menge von Flows, von denen eine ausgeführt werden kann. Links auf einer Webseite.
CFlow::createFlowGroup()
Mittwoch, 13. Februar 13
FlowGroup
1.1
1.2
1.3
1.4
FLOWGROUP
Ausführung eines Flows invalidiert alle Alternativen.
CFlow::executeFlow()CFlow::invalidateExcept()
Mittwoch, 13. Februar 13
FG 1
FG 1.2
FG 1.2.1
FLOWGROUP
FlowGroup kennt Vorgänger und Nachfolger.
Vorgänger ist ZURÜCK oder ABBRECHEN Link auf jeder Seite.
Mittwoch, 13. Februar 13
FG 1
FG 1.2
FG 1.2.1
FLOWGROUP
Terminierung von FlowGroup setzt Vorgänger fort.
CFlow::terminateFlowGroup()
Mittwoch, 13. Februar 13
∼ ∼ ISOLATION ∼ ∼
CONTROLLER SAGT NUR,ICH BIN FERTIG‘
Mittwoch, 13. Februar 13
FG 1
FG 1.2
PFG A
PFG A
PFG A
Permanent
TransientGLOBALES
Globale Links überdauern ihren Aufruf
CFlow::createPermanentFlow()
Mittwoch, 13. Februar 13
FG 1
FG 1.2
FG 1.2.1
EXCEPTION!
User nicht berechtigt? Es geht geordnet weiter...
CFlow::terminateFlowGroup()
Mittwoch, 13. Februar 13
FG 1
FG 1.2
FG 1
FG 1.2
FG 1.2.1
FG 1.2.1.5
FG 1.2.1.5.7
MULTISTEP
Mehrschrittige Prozesse durch mehrere FlowGroups
Mittwoch, 13. Februar 13
Session
http://myServer/doLogin
TransientPerm
anent
Mittwoch, 13. Februar 13
Session
http://myServer/
PFG A
PFG A
PFG A
TransientPerm
anent
Mittwoch, 13. Februar 13
Session
http://myServer/
PFG A
PFG A
PFG A
TransientPerm
anentFlowGroup
1.1
1.2
1.3
1.4
ABCDEFGHIJ:1234567890
ID der FlowGroupID des Flows
Mittwoch, 13. Februar 13
Session
IDs von FlowGroups
IDs von Flows
Controller/Parameter
Browser
ID der Session
IDs aktueller FLows
Hidden Parameter
GET-/POST-Parameter
IDS SIND NICHT VORHERSEHBAR
Mittwoch, 13. Februar 13
∼ ∼ VISION ∼ ∼
DEFINIERE, WAS WANN PASSIEREN DARF
IN EINER ZENTRALEN DSL
Mittwoch, 13. Februar 13
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
Flow
parent:EArtikel => 485
owner:EPerson=> 42
CArtikelFlow
Info => 'Bitte tragen...'
CArtikelFlow::CreateSub
Mittwoch, 13. Februar 13
ZUM THEMA SICHERHEIT...
Mittwoch, 13. Februar 13
https://www.bsi.bund.de/cae/servlet/contentblob/476464/publicationFile/30632/WebSec_pdf
108Seiten
Mittwoch, 13. Februar 13
http://shiflett.org/php-security.pdf
37Seiten
Mittwoch, 13. Februar 13
FRAGEN / ANREGUNGEN / KRITIK
Mittwoch, 13. Februar 13