Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit dem Web-Framework Django

Ähnliche Dokumente
PHP-5-Zertifizierung. Block 12 Security.

Web Application Security: SQL-injection, Cross Site Scripting -- w3af

Einführung in Web-Security

Sicherheitslücken in Webanwendungen -

CASE STUDY SICHERES ONLINEBANKING

IT-Sicherheit. Sicherheit von Webanwendungen 7. Januar 2011

Web-Sicherheit: Kein fauler Zauber?! Kai Jendrian. <Seminartitel> <Seminartitel>

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

Sicherheit in Webanwendungen CrossSite, Session und SQL

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Inhaltsverzeichnis. Einleitung

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Play Framework, MySQL, JPA, HQL, HTML, jquery,

Money for Nothing... and Bits4free

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

V10 I, Teil 2: Web Application Security

Kompendium der Web-Programmierung

Aktuelle Bedrohungen im Internet

Das Einsteigerseminar ASP

Thema PHP-Sicherheits-Training-System. vorgelegt von Timo Pagel

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

MySQL, Java und einiges mehr

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Jens Ferner. Profikurs PHP-Nuke

Django - ein Python Web-Framework

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Welche Gefahren gehen vom Firmenauftritt im Internet aus?

Sicherheit Web basierter Anwendungen

Fehlende Input-Filterung. Klaus Kusche

Dr. Bruce Sams, GF OPTIMA. OPTIMA Business Information Technology GmbH ist eine Beratungsfirma, spezialisiert auf

1 Guido Röwekamp arvato Systems GmbH 21. Juni ATICS Tage 2015

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

am Beispiel - SQL Injection

Security-Webinar. September Dr. Christopher Kunz, filoo GmbH

Web-Security. IT-Security. Andreas Unterweger. Studiengang Web Business & Technology FH Kufstein. Sommersemester 2017

Thema PHP-Sicherheits-Training-System. Timo Pagel

Grundkurs MySQL und PHP

[14-04] Huseby, Sverry: Sicherheitsrisiko Web-Anwendung. dpunkt, 2004

Hochschule Darmstadt Fachbereich Informatik

Hochschule Darmstadt Fachbereich Informatik

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Webentwicklung mit Django

Secure Webcoding for Beginners

Skalierbare Webanwendungen mit Python und Google App Engine

Schnell performante Web-Applikationen entwickeln. Markus Zapke-Gründemann LinuxTag 2012

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

Just-In-Time Security: Sicherheit im Entwicklungsprozess

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Aktuelle Angriffstechniken auf Web-Applikationen. Andreas Kurtz cirosec GmbH, Heilbronn

Web 2.0-Hacking Live Vorführung. Philipp Rocholl, Secaron AG Proseminar "Network Hacking und Abwehr",

Inhaltsverzeichnis. vii

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Session 2. Notes Apps auf ipad & Co. Wie native Apps mit Notes synchronisieren können.

ARDS-Projekt. Datenbankentwicklung für medizinische Auswertungen. Dr. Thomas Meinike

Ruby on Rails Sicherheit. Heiko Webers

Scriptsprachen für dynamische Webauftritte

OWASP und APEX. Eine Einführung. Wir kümmern uns! Sebastian Wittig Systementwickler merlin.zwo InfoDesign GmbH & Co. KG Karlsruhe

SecureNet GmbH For personal use only. Distribution not allowed.

PHP- Umgang mit Datenbanken (1)

HACK YOUR OWN WEBSITE! WEB SECURITY IM SELBSTVERSUCH

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

am Beispiel - SQL Injection

When your browser turns against you Stealing local files

APEX Datenverwaltung Wo sind die Daten gerade?

Visualisierung von Geodaten in APEX Interactive Grid und OpenLayers

10. Datenbank Design 1

Advanced Web Hacking. Matthias Luft Security Research

Hochschule Darmstadt Fachbereich Informatik. Entwicklung webbasierter Anwendungen

Sichere Datenbankanfragen

DoorBird Connect Snom

Hochschule Darmstadt Fachbereich Informatik

Programmierhandbuch SAP NetWeaver Composition Environment

Webbasierte Informationssysteme

Daniel Schalberger, SySS GmbH 1. Typische Schwachstellen im Online-Handel, Prävention. Dipl. Inform. Daniel Schalberger, Syss GmbH

Datenbanken. Heute dreht sich alles um SELECT

Zusammenfassung Web-Security-Check ZIELSYSTEM

Internet-Technologien

Algorithmische Mathematik I

Datensicherheit. Vorlesung 7: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

XSS for fun and profit

OWASP Top 10. im Kontext von Magento. Mittwoch, 21. November 12

HOLIDAY-FERIENWOHNUNGEN.COM Anleitung zur Aktivierung von Java Script und Informationen über Cookies

Browsereinstellungen Geobasisdaten online

SQL-Injection. Seite 1 / 16

Brogrammiereii lernen in

<Insert Picture Here> APEX? Aber sicher! Tipps und Tricks für eine sichere APEX-Umgebung. Carsten Czarski, ORACLE Deutschland B.V. Co.

Präsentation mongodb. David Wild

web2py - Web-Framework mit didaktischem Hintergrund Nik Klever Hochschule Augsburg

Transkript:

Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit dem Web-Framework Django 29. Januar 2018 Yannick Linke 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 1

Übersicht Web-Frameworks 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django Sicherheit 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django Sicherheit Realisierung 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django Sicherheit Realisierung Datenbank 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django Sicherheit Realisierung Datenbank Floyd-Warshall-Algorithmus 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Übersicht Web-Frameworks Objekt-relationale Mapper Templates Caching Angriffsmöglichkeiten Django Sicherheit Realisierung Datenbank Floyd-Warshall-Algorithmus Benutzeroberfläche 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 2

Web-Frameworks Eine Sammlung von Paketen oder Bibliotheken, die grundlegende Funktionen enthalten, um Web-Entwicklung zu vereinfachen, wie: > Templates 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 3

Web-Frameworks Eine Sammlung von Paketen oder Bibliotheken, die grundlegende Funktionen enthalten, um Web-Entwicklung zu vereinfachen, wie: > Templates > Datenbankzugriff 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 3

Web-Frameworks Eine Sammlung von Paketen oder Bibliotheken, die grundlegende Funktionen enthalten, um Web-Entwicklung zu vereinfachen, wie: > Templates > Datenbankzugriff > Sessions und Authentifikation 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 3

Web-Frameworks Eine Sammlung von Paketen oder Bibliotheken, die grundlegende Funktionen enthalten, um Web-Entwicklung zu vereinfachen, wie: > Templates > Datenbankzugriff > Sessions und Authentifikation > Übersetzungen 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 3

Objekt-relationale Mapper > Abstraktionsebene, die das Ansteuern der Datenbank erleichtert. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 4

Objekt-relationale Mapper > Abstraktionsebene, die das Ansteuern der Datenbank erleichtert. > Erlauben das Definieren von Tabellen durch Klassen in der genutzten Programmiersprache. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 4

Objekt-relationale Mapper > Abstraktionsebene, die das Ansteuern der Datenbank erleichtert. > Erlauben das Definieren von Tabellen durch Klassen in der genutzten Programmiersprache. > Durch diese Klassen wird auch auf Einträge in der Datenbank zugegriffen. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 4

Templates Definition einer Vorlage, die mit Daten gefüllt und dann ausgeben wird. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 5

Templates Definition einer Vorlage, die mit Daten gefüllt und dann ausgeben wird. <select > {% for user in users %} <option >{{ user. username }} </ option > {% endfor %} </select> 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 5

Templates Definition einer Vorlage, die mit Daten gefüllt und dann ausgeben wird. <select > {% for user in users %} <option >{{ user. username }} </ option > {% endfor %} </select> <select > <option >UserA </ option > <option >UserB </ option > </select> 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 5

Caching > Viele Frameworks erlauben das temporäre Speichern von Informationen. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 6

Caching > Viele Frameworks erlauben das temporäre Speichern von Informationen. > Führt zu niedrigeren Zugriffszeiten und verringert die Last pro Anfrage. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 6

Caching > Viele Frameworks erlauben das temporäre Speichern von Informationen. > Führt zu niedrigeren Zugriffszeiten und verringert die Last pro Anfrage. > Meist für Informationen aus Datenbanken, generiertes HTML, oder Ergebnisse von aufwendigen Berechnungen verwendet. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 6

Angriffsmöglichkeiten Einige bekannte Angriffe, die mit Web-Frameworks verhindert werden können, sind: 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 7

Angriffsmöglichkeiten Einige bekannte Angriffe, die mit Web-Frameworks verhindert werden können, sind: > XSS (Cross-Site Scripting): JavaScript in ungefilterten Eingabemasken. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 7

Angriffsmöglichkeiten Einige bekannte Angriffe, die mit Web-Frameworks verhindert werden können, sind: > XSS (Cross-Site Scripting): JavaScript in ungefilterten Eingabemasken. > CSRF (Cross-Site Request Forgery): JavaScript auf einer anderen Webseite, das Anfragen im Namen des Nutzers sendet. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 7

Angriffsmöglichkeiten Einige bekannte Angriffe, die mit Web-Frameworks verhindert werden können, sind: > XSS (Cross-Site Scripting): JavaScript in ungefilterten Eingabemasken. > CSRF (Cross-Site Request Forgery): JavaScript auf einer anderen Webseite, das Anfragen im Namen des Nutzers sendet. > SQL-Injection: SQL-Abfrage in ungefilterten Nutzereingaben. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 7

Django > Entwickelt von zwei Angestellten der Niederländischen Firma World Online im August 2003. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 8

Django > Entwickelt von zwei Angestellten der Niederländischen Firma World Online im August 2003. > Nach 2 Jahren quelloffen veröffentlicht und nach dem Jazz-Musiker Django Reinhardt benannt. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 8

Django > Entwickelt von zwei Angestellten der Niederländischen Firma World Online im August 2003. > Nach 2 Jahren quelloffen veröffentlicht und nach dem Jazz-Musiker Django Reinhardt benannt. > Derzeit finanziell von Django Software Foundation unterstützt und von Entwicklern aller Welt weiterentwickelt. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 8

Django Sicherheit Bekannte Angriffsmethoden wie CSRF, XSS und SQL-Injection sind mit einfachen Mitteln zu verhindern: 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 9

Django Sicherheit Bekannte Angriffsmethoden wie CSRF, XSS und SQL-Injection sind mit einfachen Mitteln zu verhindern: > CSRF-Token in Formularen 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 9

Django Sicherheit Bekannte Angriffsmethoden wie CSRF, XSS und SQL-Injection sind mit einfachen Mitteln zu verhindern: > CSRF-Token in Formularen > Variablen in Templates werden encodiert 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 9

Django Sicherheit Bekannte Angriffsmethoden wie CSRF, XSS und SQL-Injection sind mit einfachen Mitteln zu verhindern: > CSRF-Token in Formularen > Variablen in Templates werden encodiert > Djangos objekt-relationaler Mapper 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 9

Django Sicherheit ORM User. objects. filter( username ='A')\.values('username', 'id') Listing: Django ORM 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 10

Django Sicherheit ORM User. objects. filter( username ='A')\.values('username', 'id') Listing: Django ORM SELECT "auth_user"."username", "auth_user"."id" FROM " auth_user" WHERE " auth_user"." username" = 'A' Listing: SQL-Abfrage 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 10

Datenbank user id: int username: varchar *..1 user_id 1..* buyer_id bill id: int date: date buyer_id: int image: varchar *..1 bill_id split id: int item_id: int user_id: int item_id *..1 item id: int price: int bill_id: int Abbildung: Darstellung der relevanten Tabellen und Felder 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 11

Floyd-Warshall-Algorithmus > Wegfindungsalgorithmus für gewichtete, gerichtete Kanten. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 12

Floyd-Warshall-Algorithmus > Wegfindungsalgorithmus für gewichtete, gerichtete Kanten. > Benannt nach Robert Floyd und Stephen Warshall. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 12

Floyd-Warshall-Algorithmus > Wegfindungsalgorithmus für gewichtete, gerichtete Kanten. > Benannt nach Robert Floyd und Stephen Warshall. > Erlaubt zwei gerichtete Kanten zwischen zwei Knoten. 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 12

Floyd-Warshall-Algorithmus Eingabedaten {'UserA': { 'UserB': 12.49, 'UserC': 25}, 'UserB': { 'UserA': 20.35, 'UserC': 1.35}} UserC UserA 25 20.35 1.35 12.49 UserB Abbildung: Darstellung als Knotenmodell 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 13

Floyd-Warshall-Algorithmus Erste Iteration UserC UserA 25 20.35 1.35 12.49 UserB Abbildung: Model zu Beginn 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 14

Floyd-Warshall-Algorithmus Erste Iteration UserA UserA 25 20.35 12.49 25 7.86 UserC 1.35 UserB UserC 1.35 UserB Abbildung: Model zu Beginn Abbildung: Erste Iteration 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 14

Floyd-Warshall-Algorithmus Ergebnis UserA UserC 17.14 9.21 UserB Abbildung: Zweite Iteration und Ergebnis {'UserA': { 'UserC': 17.14}, 'UserB': { 'UserC': 9.21}} 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 15

Benutzeroberfläche Abbildung: Hauptseite nach dem Login 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 16

Benutzeroberfläche Abbildung: Hinzufügen einer Rechnung 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 17

Benutzeroberfläche Abbildung: Editieren einer Rechnung 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 18

Benutzeroberfläche Abbildung: Anzeigen einer Rechnung 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 19

Benutzeroberfläche Abbildung: Auflistung aller Rechnungen 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 20

Benutzeroberfläche Abbildung: Monatliche Abrechnung via Floyd-Warshall 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 21

Quellen Django Englisch. 2018. URL: https://docs.djangoproject.com/en/2.0/ Mozilla Developer Network. Server-side web frameworks Englisch. 2017. URL: https://developer.mozilla.org/en-us/docs/ Learn/Server-side/First_steps/Web_frameworks OWASP. Category: Attack Englisch. 2018. URL: https://www.owasp.org/index.php/category:attack Aleksejs Voroncovs. Der Floyd-Warshall Algorithmus Deutsch. 2015 URL: https://www-m9.ma.tum.de/graph-algorithms/sppfloyd-warshall/index_de.html 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 22

Ende Vielen Dank für Ihre Aufmerksamkeit. Fragen? 2018 Yannick Linke/FH Aachen Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit Django 23