Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

December 13 2010

Angelesen: Sichere Webanwendungen – Das Praxishandbuch

Ich liebe das Entwickeln. Vor allem, wenn es sich um Webanwendungen in PHP handelt. PHP ist klasse. Es ist leicht zu lernen, hat einen großen Funktionsumfang, mit dem sich die meisten vorstellbaren Aufgaben erledigen lassen. Leicht beherrsch- und auch recht schnell lernbar.
Doch wie alles im Leben hat PHP auch eine andere Seite. Denn das Konzept der Einfachheit geht auf Kosten der Sicherheit. Schnell ist ein Skript geschrieben, welches Dateien hochladen kann oder womit man Daten in einer Datenbank einfügt und abruft. Und genauso schnell, wenn nicht schneller, ist auch eine Sicherheitslücke drin. Die möglichen Angriffszenarien sind vielfältig und reichen von XSS, CSRF, RFI, LFI bis hin zur SQL – Injection.
Für den Laien reichlich kryptische Begriffe, für denjenigen, der sich schon mal mit der Sicherheit von Webapplikationen beschäftigt hat, ein etwas vorstellbarerer Begriff. Ich zähle mich eher zu den letztgenannten Menschen. Über Sicherheitslücken in Webanwendungen hatte ich hier und da schon mal gelesen, aber richtig tiefgehendes Wissen besaß ich bisher nicht. Deshalb griff ich auch gleich zu, als ich dieses Buch in der Unibibliothek zufällig sah.
Meine Befürchtungen waren, dass mich jetzt sehr trockener Stoff erwarten würde, teils vielleicht tiefgehend theoretisch und folglich schwer vorstellbar. Aber das Buch hält, was es verspricht: es ist ein Praxishandbuch. Und somit werden ausführlich aber nicht zu praxisfremd die verschiedenen Aspekte der Websicherheit erklärt. Jederzeit haben die Autoren die Praxis im Blick. So wird nicht nur erklärt, wie Sicherheitslücken entstehen, sondern auch, was für eine Auswirkung ein Angriff über solche Lücken haben kann. Grade Leuten wie mir, die Cross Site Scripting (kurz: XSS) für harmlose Spielereien gehalten haben, wird der Respekt vor solch scheinbar harmlosen Sicherheitslücken neu gelehrt. Denn was mit dem Erzeugen einer Alarmbox per eingeschleusten JavaScript anfängt, kann schnell in einem – ebenfalls per JavaScript eingeschleusten – falschen Loginbereich enden, der Logindaten auf der Originalseite abphisht. Und das ist nur ein Kapitel des Buches.
Weiter wird die Absicherung von Datenbankzugriffen beleuchtet und einem nahegelegt, warum Formulare immer in vielerlei Hinsicht kontrolliert werden sollten.
Und wer sich schon immer gefragt hat, was Charsets sind bzw. warum ausgerechnet die ein riesiges Sicherheitsproblem darstellen können, sollte spätestens jetzt zu diesem Buch greifen.
Kurzum: enttäuscht wird man von diesem Buch definitiv nicht. Denn das Buch geht auch jenseits der vielen Standardtipps zur Absicherung von Webanwendungen, die man im Internet zuhauf findet. Denn nicht immer reicht es, die gängigen Funktionen wie “html_special_chars()”, “html_entities()” und “strip_tags()” zu nutzen wie häufig im Internet erklärt wird. Schnell können diese Funktionen genutzt werden, um sich bösartigen Code von diesen Funktionen zusammensetzen und ausführen zu lassen. Grundsätzlich werden die meisten gängigsten Abwehrmechanismen genauer beleuchtet und meist kommt dabei wenig gutes zum Vorschein.
Die Autoren werfen also nicht nur ein paar Begriffe in den Raum und schlagen halbherzig irgendwelche Funktionen vor. Stattdessen fordern sie den Leser selber auf, sich Gedanken zu machen, wie man an welchen Stellen im Code am sinnvollsten vorgeht bzw. was das sinnvollste Verfahren zur Validierung und Absicherung von User-eingaben ist.
Das Buch selbst ist dabei halb-modular aufgebaut. So gehen die Kapitel sukzessive tiefer in die Materie ein und stellen den Fokus mit der Zeit immer mehr auf die konkrete Praxis. Wer allerdings weniger geduldig ist, kann auch gleich in die Kapitel direkt einsteigen. Meist wird einem die Problematik kurz erklärt – eventuell auf tiefergehende Kapitel verwiesen – und dann am konkreten Beispiel aufgezeigt. Die Texte selbst sind interessant und angenehm lesbar geschrieben und enthalten zahlreiche weitergehende Links. Nie kommt man wirklich ins Stocken und sieht den Wald vor lauter Bäumen nicht mehr. Dies ist zwar nicht immer so – stellenweise gerät das Kapitel über Charsets dann doch einen Tick zu trocken – langweilig wird es aber nie.
Wer vom Buch allerdings erwartet danach der Überhacker zu sein, der Webseiten binnen von Minuten knackt, wird schwer enttäuscht. Erstmal ist das nicht die Zielgruppe der Autoren. Das sind nämlich Webentwickler, die sichere Anwendungen schreiben wollen, die dazu noch eine hohe Usability aufweisen, sodass dem User nicht tausend Steine beim Bedienen der Seite in den Weg gelegt werden.
Als nächstes ist es vor allem die unsichere Rechtslage in Deutschland – genannt sei hier der “Hackerparagraf” §202 – die ein tieferes, konkreteres Aufzeigen von Sicherheitslücken unmöglich macht. Aber das muss das Buch auch nicht. So wie es aktuell im Buch umgesetzt wurde reicht es auch vollkommen, damit man immer weiß, warum bzw. wie genau eine Sicherheitslücke funktioniert.
Wer also Webanwendungen verantwortungsvoll und benutzerfreundlich umsetzen will und/oder sich für das Thema “Websicherheit” schon immer interessiert hat, wird mit dem Buch seine wahre Freude haben bzw. nicht enttäuscht werden. Umfangreich aber nicht zu tiefgehend werden alle wichtigen Sicherheitsaspekte einer Webanwendung beschrieben. Auch muss man keine Angst haben mit abstraktem Wissen allein gelassen zu werden. So ziemlich immer werden die Thematiken anhand von PHP – Code aufgezeigt. Nie hat man das Gefühl nicht zu wissen, warum die Autoren sich jetzt diesem oder jenem Sicherheitsaspekt verschrieben haben. Und auch Befürchtungen, man würde ja nur Tipps zusammentragen, die man überall im Internet finden kann, können getrost beiseite gelegt werden. Diese werden eher kritisch hinterfragt, als blindlings als ultima ratio empfohlen zu werden.
Für mich zählt dieses Buch zur Grundlektüre, wenn es darum geht, Webanwendungen sicher, stabil und – vor allen Dingen – professionell zu schreiben und daher möchte ich es auch allen, die mit Webentwicklung zu tun haben und mit der Sicherheit eben jener noch nicht so stark vertraut sind, ans Herz legen.

Eine Leseprobe findet ihr hier.

July 12 2010

Web 2.0 und wie es die Welt verändert hat

Seit 2003 spricht man nicht nur einfach von Internet oder dem World Wide  Web, sondern vom Web 2.0. Gemeint ist nichts anderes als die neue Generation Internet. Es hat quasi eine Revolution stattgefunden, die still und leise eine ganz neue Nutzung des Internets zur Folge hatte. Das Internet wird demnach nicht nur mit Inhalten durch große Medienunternehmen gefüllt, sondern vermehrt durch die Benutzer selbst. Dies stellt sich nicht nur durch eine Unzahl an Foren und Blogs dar, sondern auch durch die Bereitstellung unzähliger interaktiver Anwendungen, die es leicht machen Beiträge und Artikel selbst zu erstellen, zu bearbeiten oder zu verteilen.

Im Unterschied zum angeblichen Vorgängermodell Web 1.0 gibt es nun also viele Benutzer und zu dem viele Bearbeiter und Mitwirker. Auch die einzelnen Webseiten haben sich in der Web 2.0 Generation entscheidend verändert und evolutioniert. Während vorher meist nur einfache HTML Seiten angeboten wurden, welche kaum oder nur sehr mühselig verändert und aktualisiert wurden, können heutige Webseiten eine ganz andere Präsenz und Erscheinungsform nachweisen. Angefangen von kurzen Videoclips, den sogenannten Video Footage Clips, bis hin zu ganzen Filmen, die kostenfrei bereitgestellt werden. HTML ist längst in den Hintergrund gerückt und wird nur noch als Gerüst für die heutigen Webseiten verwendet.  Zudem können in der Web 2.0 Generation auch Nichtprogrammierer gute Webseiten herstellen.

Da wo früher umfangreiche EDV-Kenntnisse von Nöten waren, treten heute moderne und leichtverständliche Webdesignprogramme. Die meisten davon kann man sogar kostenfrei downloaden. Das wäre dann gleich ein weiterer Punkt des Web 2.0 Fortschrittes. Die unglaublich große Anzahl an freizugänglicher Software, der sogenannten Freeware. Fast für jedes Problem gibt es heute eine Lösung und ein Programm. Dazu gibt es meistens immer eine geeignete Freeware oder Shareware, so dass der Benutzer erst einmal probieren kann, bevor er wirklich kauft.

Der Zuwachs an Flatrates ist enorm gestiegen seit Web 2.0. Fast jeder dritte private Haushalt in Deutschland hat eine Flatrate zum unbegrenzten Surfen. Auch das kennzeichnet die neue Internetgeneration deutlich. Informationen werden heute einfach mal eben abgerufen, statt sie mühsam über Zeitung und Fernsehen zu erlangen. Mit Web 2.0 entstand nicht nur ein ganz neuer Begriff, sondern auch eine ganz neue Denkweise, die sogenannte Social Media. Das sind Soziale Netzwerke und Netzwerkgemeinschaften wie zum Beispiel Facebook, MySpace oder Friendster.

June 24 2010

HTML5: Was ist zu erwarten?

Das Web erfährt ununterbrochen Veränderungen und muss sich stetig neuen Anforderungen stellen. Somit müssen sich auch Programmier- und Anzeigesprachen ständig neuen Herausforderungen stellen. XHTML1 oder HTML4 haben sich lange gehalten, doch längst können sie den heutigen Anforderungen nicht mehr stand halten. Um diesen Anforderungen nachzukommen wird derzeit HTML5 und CSS3 entwickelt.

HTML und CSS hatten bisher nahezu nur mit statischem Inhalt zu tun, dies hat sich im Zeitalter von YouTube und Browsergames geändert. Um diese Inhalte einheitlich und fehlerfrei anzuzeigen bedarf es derzeit oft vieler Workarounds. In Zukunft soll dies nicht mehr nötig sein, denn HTML5 soll im Stande sein dynamische sowie multimediale Inhalte wiederzugeben.

Viel erwartet man von HTML5, trotzdem möchten die Entwickler das Rad nicht neu erfinden und ein ganz neues HTML aus dem Boden stampfen. Evolution statt Revolution ist das Motto und somit sollen lediglich Änderungen und Erweiterungen vorgenommen werden und nicht alles neu entwickelt werden.

Durch das Einführen von neuen Attributen soll der Quellcode einheitlicher und besser strukturiert werden. So wird beispielsweise ein section-Attribut eingeführt, das zusammengehörige Attribute einfasst. So werden bei einem Artikel beispielsweise Überschrift, Unter-Überschrift und Artikelinhalt in einem section-Attribut eingefasst, somit ist die Zusammengehörigkeit gegeben. Auch wird ein header- sowie footer-Attribut eingeführt um klar zu signalisieren was eher statisch ist und was der wichtige Inhalt ist. Auch ein nav-Attribut wird eingeführt um die Navigation klar zu kennzeichnen.

Einer der wohl wichtigsten neuen Attribute sind das video-Attribut und audio-Attribut. Damit lassen sich einheitlich Videos und Sounds in verschiedenen Codecs und Formaten abspielen. Somit wird es in Zukunft möglich sein ohne lästige Addons oder Plugins Video- und Audio-Dateien abzuspielen. Dies stellt einen erheblichen Vorteil für die Video-Einbettung dar, da diese somit browser- und plattformunabhängig wird. Dies ist besonders wichtig in Bezug auf die Anzeige von Videos auf mobilen Geräten.

Natürlich sind das nur einige Beispiele der neuen Attribute, jedoch geben sie einen guten Einblick was man von HTML5 zu erwarten hat. Geht man diesen Gedankengang weiter, so wird klar, dass dieser Standard noch viel weitreichendere Folgen hat. So können Suchmaschinen-Crawler nun effektiver arbeiten und es wird eine ganz neue Dimension von SEO geben. Wir dürfen also auf einen spannenden Schritt in Richtung Web 2.0 gespannt sein.

Einführungsvideo in HTML5 von Marcus Hofbauer

March 23 2010

Erfahrungsbericht: CMS-System für Einsteiger

Nachdem ich im Januar bereits verzweifelt nach einem passendem CMS-System gesucht habe, möchte ich nun mit diesem Beitrag die Funktionsweise des jimdo-cms erläutern und einen kleinen Einblick in die Homepagegestaltung geben.

Gerade für Einsteiger bietet sich dieses CMS-System an, da hier wirklich schöne Homepages ohne Programmierkenntnisse erstellt werden können.

Gespannt darf ich auf die Weiterentwicklung sein.

Jimdo: Webseitenbaukasten mit WYSIWYG-Editor, der per Mausklick auf die entsprechenden Module im Frontend geöffnet wird. Neben Texten und Bildern lassen sich auch Videos und RSS-Feeds in die Seite einpflegen. Einzelne Abschnitte der Webseite können mit einem Passwort versehen werden, sodass sich ein Mitgliederbereich einrichten lässt.

Hier gehts zum Video


Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.