Python Workshop Linux Info Tag Augsburg. Nik Klever Hochschule Augsburg

Ähnliche Dokumente
web2py - Web-Framework mit didaktischem Hintergrund Nik Klever Hochschule Augsburg

Secure Programming vs. Secure Development

am Beispiel - SQL Injection

am Beispiel - SQL Injection

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

Dominik Doerner, Jonathan Bechtle ESCde

Kompendium der Web-Programmierung

Basisworkshop inchorus Gadgets

Unternehmensdokumente mit dem XML Publisher erzeugen

APEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH

Portal zur Verwaltung von Wohngemeinschaftsfinanzen mit dem Web-Framework Django

Jens Ferner. Profikurs PHP-Nuke

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

HTML DB. Von vielen kleinen Dateninseln zu einer zentralen Lösung. msg systems ag, März

Sichere Entwicklung und gängige Schwachstellen in eigenentwickelten SAP-Web- Anwendungen. OWASP Nürnberg,

OpenWAF Web Application Firewall

XML Publisher die universelle Lösung für Geschäftsdokumente

WALL&KOLLEGEN RECHTSANWÄLTE AVVOCATI BARRISTER-AT-LAW MÜNCHEN INNSBRUCK BOZEN

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

VAADIN, SPRING BOOT & REST

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

Linux-Camp: Linux als Server am Beispiel LAMP

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

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck

APEX OOS TOOLS & HELFER

Azure Community Deutschland. Microsoft Azure. Was ist drin für Unternehmen? Oliver Michalski (Senior Software Engineer.NET)

Google Gears Offline Web?

Wesentliche Ideen und Komponenten der V13 V13 Under the Hood die Technik dahinter

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

<Insert Picture Here> MySQL Workbench für Einsteiger

Design Bugs OWASP The OWASP Foundation Alexios Fakos Senior Security Consultant n.runs AG

APEX DESKTOP APPS. Interaktion mit dem Client System

Sicherheitsanalyse der Private Cloud Interfaces von

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

WORDPRESS DER ANFANG WORDPRESS LOKAL AUF DEM RECHNER INSTALLIEREN

Mail: Web: juergen-schuster-it.de

Warum werden täglich tausende von Webseiten gehackt?

Microsoft Visual Studio Code mit RPG und IceBreak

Rapid Java wie mit Forms

Virtuelle Desktop Infrastruktur

Internetsichere Kennwörter

Anleitung zur Integration der /data.mill API in SAP Java Applikationen

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Projekte. Beratung. Spezialisten. FAQs zur Technik. IKS-Thementag FAQs zur Technik 1 61

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

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

Integration von UIS-Webdiensten

Von der Steinzeit ins neue Jahrhundert. Migration von APEX 4.2 auf 18.1 in die Cloud & Open ID Anbindung (Erfahrungsbericht)

Release-News: Technische Lösungen

Literatur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung

Cross Platform Development mit SharePoint

Darüber hinaus bietet SQuirreL eine Vielzahl von Plug-ins, mit denen der Funktionsumfang des Programms erheblich erweitert werden kann.

HFT App. Prof. Dr. Gerhard Wanner Michael Kolb B.Sc. Sonntag, 26. Mai 13

APEX und Drucken! - Die Schöne und das Biest!

Evaluierung des Content Management Systems ez Publish

MyCoRe > V1.0: Technische Weiterentwicklung

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Webtechnologien Teil 1: Entwicklungsumgebung(en)

elabftw Das freie elektronische Laborjournal Alexander Minges Helmholtz Open Science Workshop Elektronische Laborbücher 13.

Mobile Backend in der

Konzept eines Datenbankprototypen Folie 1 Daniel Gander / Gerhard Schrotter

Einrichten des IIS für DataFlex WebApp Server. Einrichten des IIS (Internet Information Server) für DataFlex WebApp Server

Enterprise Application Integration Erfahrungen aus der Praxis

Install.Desk Kiosk. Installationsanleitung. Der Install.Desk Kiosk ist eine Server-Anwendung, die aus den folgenden zwei Teil-Anwendungen besteht:

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

PRODUCTION INTELLIGENCE OUT OF THE CLOUD

21 Ein eigenes. Diskussionsforum. Bauen Sie auf Ihrer Website eine Community auf. Warum ein Diskussionsforum anbieten?

SharePoint 2013 Die neuen Funktionen! Alexander Lachner MTC Architect Microsoft Deutschland GmbH blogs.msdn.com/b/mtcmuc

<HTML DB> Web Application Development

Internationale Radiokohlenstoff-Boden- Datenbank (IRSDB)

Literatur und Links. Webtechnologien WS 2017/18 Teil 1/Entwicklung

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Serena Schulungsplan 2017

1. Angular-User Group Meetup, Nürnberg. Authentifizierung mit Angular JS und Microservices

GRAU DataSpace 2.0 Die sichere Fileshare & Sync Lösung für Unternehmen und Organisationen YOUR DATA. YOUR CONTROL

Schwachstellenanalyse 2012

4. RADAR-WORKSHOP RADAR APPLICATION PROGRAMMING INTERFACE KARLSRUHE, 25./26. JUNI Matthias Razum, FIZ Karlsruhe

SE2 - also ich möchte das nicht.

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

Entwicklung einer Mobile Application mit ADF Mobile

map.apps 4 Bundles PIONEER / Systemvoraussetzungen

Typo3. Thomas Lüthi. Beitrag zur "CMS-Battle" vom 7. Juni 2010 Campus Bern.

Statusbericht: Einsatz von Gauss VIP im Kompetenznetz Maligne Lymphome SY 5.2 CMS. Matthias Löbe IMISE Leipzig

Systemvoraussetzungen & Schnittstellen otris privacy

Benchmark: Sicherheitslücken & Compliance-

Agon Solutions. The native web mobile Architekturen mit HTML5 und PhoneGap. Ihre Prozesse in besten Händen.

Sicherheit Web basierter Anwendungen

SMARTentry Notification

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Einrichten von CMSMobile

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

Update Handbuch. (Datenbank, Applikation und Zolldaten)

Einführung in Google Web Toolkit

Überblick über das Oracle Internet File System. PEGAS systemhaus 2001 PEGAS Firmenpräsentation

ProAccess SPACE 3.0. Für weitere Informationen wenden Sie sich bitte an Ihren SALTO Partner oder:

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

MIT3 Serverseitige Programmierung. Claudius Coenen

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

CSGIS Gbr Canalejo & Schönbuchner GIS. Der VfS Viewer: Ein auf Open Source basiertes Web GIS zur Information von Waldbesitzern in Bayern

Transkript:

Python Workshop Linux Info Tag Augsburg Nik Klever Hochschule Augsburg

Inhalt Einführung in den Workshop Kurzübersichten Python Web2py SL4A + Py4A Workshop 2

Python Scriptsprache seit 1991 - entwickelt von Guido van Rossum während seiner Zeit am Stichting Mathematisch Centrum (CWI) in den Niederlanden als Nachfolger der Sprache ABC von 1995 an Weiterentwicklung an der Corporation for National Research Initiatives (CNRI) Guido van Rossum war von 2000 bis 2003 bei Zope Corporation beschäftigt - Zope ist ebenfalls ein Python Web-Framework und die Basis des CMS Systems Plone ab 2001 Weiterentwicklung durch die Python Software Foundation (PSF), einer Non- Profit-Organisation Guido van Rossum ist seit 2005 bei Google beschäftigt und Peter Norvig, Director of Search Quality bei Google, Inc. sagt: Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." 3

Quellen http://www.python.org Dokumentation: http://docs.python.org/ http://de.wikipedia.org/wiki/python_(programmiersprache ) http://de.wikibooks.org/wiki/python_unter_linux Weitere Quellen: http://python.hs-augsburg.de/#py Einfache Programmbeispiele: http://wiki.python.org/moin/simpleprograms 4

web2py ein modernes Python-Application-Framework, dessen Ausrichtung ursprünglich auf die Ausbildung von Studierenden abzielte, sich jedoch inzwischen generell als interessante Alternative für Python-basierte Web-Application-Frameworks entwickelt hat. 5

Web2py Grundlage Web-Application-Framework auf der Basis von Python SQLite 3 integriert Roxen Webserver integriert jquery integriert trotzdem modular und einfach anbindbar an alle gängigen Datenbanken und Webserver 6

Usability Lauffähig auf allen gängigen Betriebssystemen und auf der Google Application Engine (GAE) Einfach zu installieren exe (Windows), zip (Linux, Mac), ein einziges Kommando: python web2py.py Einfach zu bedienen Web-Schnittstelle Rückwärts kompatibel 7

URL Ablauf Quelle: The Official web2py Book 8

View bzw. web2py Templates web2py benutzt {{... }} um Python Code in HTML einzubetten Der Vorteil von geschweiften Klammern anstelle von eckigen Klammern ist deren Transparenz in allen gängigen HTML Editoren, die somit von allen Entwicklern benutzt werden können, um web2py views zu erstellen Bei diesem Vorgang wird also Python Code in HTML eingebettet, also sollte notwendige Einrückungen entsprechend den HTML-Regeln erfolgen und nicht den Regeln von Python. Daher wird nicht eingerückter Python Code innerhalb der {{... }} Tags erlaubt. Da Python normalerweise Einrückungen zur Abgrenzung von Code Blöcken verwendet, ist eine andere Methode notwendig, um die Code Blöcke abzugrenzen. Deshalb verwendet die web2py Template Sprache hierfür das Python Schlüsselwort pass Ein Code Block beginnt mit einer Zeile wo am Ende der Zeile ein Doppelpunkt steht und endet mit einer Zeile die mit pass beginnt. Das Schlüsselwort pass ist nicht notwendig, wenn das Ende des Blocks aus dem Kontext heraus ersichtlich ist 9

Database Abstraction Layer DAL Database Abstraction Layer Einbindung der objektorientierten Konzepte von Python für die Datenbank-Anbindung standardmäßig wird Web2py mit SQLite ausgeliefert alle gängigen Datenbanken sind über die umfangreichen Python-Bibliotheken und DB- Schnittstellen eingebunden die Google Application Engine ist ebenfalls in das DAL-Konzept eingebunden 10

Sicherheit - 1 Cross Site Scripting: web2py verändert standardmäßig alle Veriablen die in der View dargestellt werden Injection Flaws (SQL Injection): web2py enthält einen Database Abstraction Layer, der SQL Injection unmöglich macht Malicious File Execution: web2py erlaubt nur exponierten Funktionen die Ausführung von Code um Malicious File Execution zu verhindern. Importierte Funktionen sind niemals exponiert. Nur Aktionen können exponiert sein. web2py benutzt eine Web-basierte Administration Schnittstelle, die einem die Unterscheidung zwischen exponiert und nicht exponiert sehr leicht macht Insecure Direct Object Reference: web2py gibt keine internen Objekte nach außen. web2py überprüft alle URLs, verhindert dadurch directory traversal attacks. web2py stellt auch einen einfachen Mechanismus zur Erstellung von Formularen zur Verfügung, die automatisch jede Eingabe überprüfen Cross Site Request Forgery (CSRF): web2py verhindert CSRF genauso wie die zufällige doppelte Abgabe von Formularen über ein einmaliges Zufalls-generiertes Token, welches jedem Formular mitgegeben wird. Zudem benutzt web2py UUIDs für Session Cookies Information Leakage and Improper Error Handling: web2py enthält ein Ticketing System. Kein Fehler kann in Code resultieren, die normale Benutzer zu Gesicht bekommen. Alle Fehler werden mitgeloggt und ein Ticket wird dem Benutzer ausgestellt, damit die Fehlerverfolgung durchgeführt werden kann. Fehler und Quellcode sind jedoch nur für den Administrator zugänglich 11

Sicherheit - 2 Broken Authentication and Session Management: web2py stellt einen eingebauten Mechanismus für die Administrator Authentifizierung zur Verfügung und es steuert Sessions für jede Anwendung unabhängig. Die Administrations Schnittstelle zwingt zur Nutzung sicherer Session Cookies, wenn der Client ist nicht localhost. Für Anwendungen enthält web2py eine leistungsfähige rollen-basierte Zugangs-Kontroll-API Insecure Cryptographic Storage: web2py benutzt den MD5 oder den HMAC+SHA-512 Hash Algorithmus um abgespeicherte Passwörter zu schützen Insecure Communications: web2py enthält den SSL-freigegebenen Rocket WSGI Webserver, aber es kann ebenso Apache oder Lighttpd und mod_ssl benutzen, um die Kommunikation mittels SSL Kodierung sicher zu machen Failure to Restrict URL Access: web2py bildet URL Requests auf Python Module und Funktionen ab. web2py stellt einen Mechanismus zur Verfügung um Funktionen öffentlich oder über Authentifizierung und Authorisierung zugangsbeschränkt zu deklarieren. Die in web2py enthaltene rollen-basierte Zugangskontroll-API erlaubt Entwicklern den Zugang auf jede Funktion basierend auf login, Gruppenmitgliedschaft oder Gruppenbasierte Bewilligungen zu beschränken. 12

Weitere Aspekte Internationalisierung unterschiedliche und anpassbare Authentifizierungsmethoden rollen-basierte Zugangskontrolle Fehlerprotokollierung und Ticketsystem jquery-einbindung Anbindung unterschiedlichster Protokolle (HTML, XML, JSON, RSS, CSV, ) Mercurial-Versionierung für die Anwendungen Social-Media Integration (Google, Twitter, Facebook,...) 13

Didaktik Architektur-Vorgabe Model View Controller einfache Installation und Bedienung Web-Schnittstelle (Web-Editor) Datenbankschnittstelle (ohne SQL) gute Dokumentation u.a. Online-Book 14

Apps - Applications - Anwendungen Jede Anwendung wird standardmäßig aus der Anwendung welcome kopiert und enthält bereits ein Basis-Modell in model/db.py Standard-Views im Ordner views/default/ Basis-Controller-Funktionen in controller/default.py Standard-Übersetzungs-Tabellen im Ordner languages/ sowie weitere Ordner und Dateien automatischer Import aller Framework-Komponenten Entwicklung und Einbindung eigener Module 15

Plugins und Komponenten Komponenten: Konzept von modularen Anwendungen, jedoch mit minimaler Server Auslastung und maximaler Wiederbenutzung von Code Eine Komponente ist ein funktional autonomer Teil einer Webseite Plugins: Ein Plugin ist eine beliebige Untermenge von Dateien einer Anwendung Ein Plugin stellt einen Mechanismus zur Verfügung, eine Untermenge einer Anwendung so zusammenzupacken, dass diese für andere Anwendung entsprechend ausgepackt und dort wiederverwendet werden kann Ein Plugin muss nicht funktional autonom sein und es kann von anderen plugins oder irgendeinem anderen Code abhängig sein Ein Plugin ist nicht Teil eines Plugin-Systems und muss sich aus diesem Grund weder registrieren noch muss es isoliert werden, obwohl Regel vorgegeben sind, um eine gewisse Isolierung zu erreichen 16

Community wachsende und agile Community http://groups.google.com/group/web2py/ rasante Entwicklung 09/2011: 1.99 09/2010: 1.85 09/2009: 1.66 09/2008: 1.49 09/2007: Gluon 1.0 17

Quellen Download: www.web2py.com Massimo di Pierro: The Official web2py Book (4th ed.), 2011 http://www.web2py.com/book Infoworld.com: BOSSIE Awards - Best of Open Source Software 18

Bossie Awards 2011 Bossie Awards 2011 for Best Open Source Development Software Als Massimo Di Pierro, Professor für Computerwissenschaften an der DePaul University, web2py plante, hatte er als Ziel vor Augen, ein Python-basiertes Web-Framework zu entwickeln, das sowohl leistungsstark als auch einfach zu bedienen ist. Es ist ihm gelungen. Web2py ist ein intelligent konzipiertes, gut gemachtes Framework von kleinem Umfang, einer übersichtlichen API, einer hervorragenden Dokumentation und einem allumfassenden Web-basierten Administrations-Tool sowie einer kompletten integrierten Entwicklungsumgebung. Die Installation ist einfach, Assistenten helfen dabei, neue Anwendungen sehr schnell zu erzeugen und die Komplexität ist herausgenommen. Web2py ist ein starkes und umfangreiches Framework mit vielen angenehmen Überraschungen - ein herausragendes unter allen Python-Frameworks. http://www.infoworld.com/d/open-source-software/bossie-awards-2011-the-best-open-source-application-development-software-171759-0 19

SL4A Scripting Layer for Android (SL4A) SL4A stellt die Android API über sogenannte Android Facades als JSON RPC Aufrufe zur Verfügung, aber natürlich nur die APIs, die durch Facades gewrapped sind. http://code.google.com/p/android-scripting/ Unofficial Release: sl4a_r5x http://code.google.com/p/android-scripting/wiki/unofficial 20

Py4A Python for Android (Py4A) http://code.google.com/p/python-for-android/ PythonForAndroid-r7b1.apk Dokumentation: Paul Ferrill: Pro. Android Python with SL4A 21

Galaxy Nexus Google Galaxy Nexus Entwicklerhandy Android 4.0.2 MicroUSB/HDMI Adapter Fehlender USB Massenspeicher-Modus Abhilfe: SwiFTP FTP Server App 22

Web2py Mobile Einbindung als Client via jquery mobile Einbindung als Server via SL4A Scripting Layer for Android Einzige notwendige Anpassung: das Standard-Python Module shelve läuft infolge des Rückfalls von anydbm auf dumbdbm unter Android nicht korrekt Nachteil: Probleme mit der Disk-Cache-Funktionalität 23

Workshop Python Starten Sie in ihrer Linux Maschine ein Terminal Fenster Geben Sie python ein Arbeiten Sie die Beispiele in dem Kapitel The Python Language http://www.web2py.com/book/chapter/29/2 durch 24

Workshop Web2py Laden Sie web2py (web2py_src.zip) auf ihre Linux-Maschine Entpacken Sie die Datei mit unzip web2py_src.zip Führen Sie cd web2py aus Starten Sie web2py mit python web2py.py 25

Beispiele aus dem Buch Beginnen Sie die Beispiele aus dem Kapitel Overview (Übersicht) durchzuarbeiten: http://www.web2py.com/book/chapter/29/3 26

Workshop SL4A/Py4A Laden Sie sich SL4A Py4A SwiFTP FTP Server auf Ihr Smartphone Bearbeiten Sie die Beispiele in Py4A und im Tutorial von SL4A 27