Some progress/ some frustration

16. December 2008

The Computer Security department of TU Berlin kindly agreed to host a presentation about my diploma thesis on Tuesday, Dec 18th. I was able to talk to a very technically versed audience about my (not so) new technical approach to XSS and SQLIA (“let the framework take care of it”). Thanks a lot, guys!

Despite the fruitful discussion I’m still not sure about the feasibility of a “rich types in frameworks” solution. There’s not too much to be gained over a conservative approach used in e.g. Django (escape everything, use other markup languages than HTML).

Nevertheless, here’s the presentation…

Vertane Chancen oder Warum man nicht mit SQL modelliert

3. December 2008

Ausdrucksschwache Sprache

Ein Business-Model definiert man üblicherweise in einer Sprache, die ausdrucksfähig genug dazu ist. Wieso bildet die ActiveRecord Implementation bei Ruby on Rails dann ausgerechnet einfach das Datenbankschema ab? In SQL99 gibt es zwei numerische Typen, drei Datumstypen und Strings. Wie bitte schön kann ich ausdrücken, dass ein Attribut eine E-Mail Adresse ist? Oder eine Postleitzahl?

Überall, wo die Postleitzahl benutzt wird, muss der Entwickler aufpassen, dass diese auch ja wohlgeformt wird. Das ist eine klassische Aufgabe, die man dem Framework überlassen will. Aber das Modell ist hat keine ausreichende semantische Tiefe.

Das richtige Ende

Django benutzt ebenfalls ActiveRecord, allerdings andersrum. Die Modell-Definitionen sind Python-Code, aus denen das Datenbankschema generiert wird. Hier hat man die komplette Ausdrucksfähigkeit von Python. Man könnte Validierungslogik und komplexe Bedingungen (“dieses numerische Feld darf nur Primzahlen enthalten”) formulieren.

Leider werden diese Möglichkeiten in Django noch nicht ausreichend genutzt. Nur einfache Typen wie Email oder Längenbeschränkungen können ausgedrückt werden. Für alles Andere muss wieder jeder Entwickler eine eigene Lösung finden und dabei Fehler machen.

Wiederverwendung

Damit die armen Entwickler von Webanwendungen nicht dazu verdammt sind, die immer gleichen Fehler wieder und wieder zu machen, sollte ein Framework auch eine Bibliothek von vordefinierten Datentypen (Name, Telefonnummer, URL, TextMitHTML) haben, die dann “sicher” in einer Anwendung verwendet werden können. Filterung, Validierung und Konvertierung (z.B. nach (X)HTML, JSON usw.) wären dann zentral definiert, vergessene Escapes (die einen grossen Teil der Injektionsattacken ausmachen) wären dann Schnee von gestern.

Fazit

  • In Web-Applikationen könnte man viel mehr Funktionalität in das Applikationsframework auslagern, wenn man mehr über die Typen wüsste.
  • Modelliere in der ausdrucksstärkeren Sprache, nicht im kleinsten gemeinsamen Nenner.

Skanking on a winter’s night

26. November 2008

Die wunderbaren Neuseeländer von Fat Freddy’s Drop waren gestern in der Columbiahalle. Und es hat sich gelohnt. Von pumpendem Elektro über Roots-Reggae bis zu sanften Klängen, dazu die grossartige Stimme von Joe Dukie. Alles hat gepasst.

DSC00245

Alle acht Musiker sind technisch gut, die Songs grooven ohne Ende. Und offensichtlich hat Fat Freddy’s Drop das schönste und sinnlichste Publikum der Welt. Großartig!

Open Source, Processes, Web Security and my thesis

6. November 2008

I’m in the process of writing my Diploma Thesis about how to prevent injection-related (XSS and SQLIA) vulnerabilities at the Software Engineering working group of the computer science department at Freie Universität Berlin.

For now, there’s not much to see here. Please have a look at the wiki page about my thesis and a concept presentation I gave at the department on 11/06/2008:

Check back soon, I’ll update the page with early draft versions of the thesis. There will also be articles about selected topics of my research in the blog.

#bcberlin3 oder: Das BarCamp

22. October 2008

Am letzten Wochenende war BarCampBerlin3 in der Telekom-Hauptstadtrepräsentanz. Kurzzusammenfassung:

  • Im Web2.0 findet die Finanzkrise nicht statt
  • Twitter!
  • die Hauptstadtrepräsentanz ist toll
  • T-Systems sucht über 200 qualifizierte Leute (Ingenieure, Projektmanager, Senior Developer)
  • Macs sind out, der eeePC ist in
  • Lebensmittelstartups sind das nächste große Ding (Müsli, Kaffee, Schokolade, Saft)
  • Vorträge sind auf Englisch, auch wenn der Sprecher das nicht kann
  • Man fragt nicht nach dem Namen sondern nach dem Twitter Handle
    • und dann nach dem Startup…
  • viele nette und vor allem motivierte Leute

Forderungen für ein wissenschaftliches Web 2.0 (oder erstmal 1.1)

17. October 2008

Vorwort: In meiner Diplomarbeit zitiere ich Quellen aus dem Web. Das ist in der Wissenschaft immer noch nicht gern gesehen. Und ausserdem umständlich (Datum dazuschreiben, wenn man einen Blogeintrag zitiert? Wie Bitte?). Aus dem Ärger sind ein paar Anforderungen entstanden, die ich ziemlich Nahe liegend fand und mich gewundert habe, dass diese so noch nirgends umgesetzt sind… noch jemand?

Web 0.8

“Stand on the shoulders of giants”, für die Wissenschaften eigentlich ein selbstverständliches Prinzip. Wissenschaftliche Zitierregeln sorgen dafür, dass man schon einmal Gedachtes einfach verwenden kann. Und dabei die Argumentation für den Leser nachvollziehbar bleibt. Der Verweis mit Autor, Titel und dem Namen der Publikation (oder der Ausgabe bei Büchern) identifiziert das zitierte Werk eindeutig. In der Papierwelt und auch im Web! Moment, auch im Web?

Selbst Web-Neulinge haben verstanden, dass der Link online das Mittel der Wahl ist, auf andere Inhalte zu verweisen. Da ist es verwunderlich, dass selbst fortschrittliche Journals wie PLoS ONE Referenzen in Artikeln durch eine Suche bei Google Scholar auflösen lassen.

Virtuelle Orte

Publlikationen eine URI oder eine URL damit sie im Web verlinkbar werden. Kritiker wenden immer wieder ein, dass URIs/URLs zu kurzlebig sind (z.B. durch Umstrukturierungen der Server), um die Erreichbarkeit eines Dokuments für lange Zeit zu garantieren. Deswegen sind Alternativlösungen wie DOI aufgetaucht.

Ein DOI ist ein Name, der ein Dokument global eindeutig identifiert. Allerdings macht er keine Aussage über dessen Aufenthaltsort. Deswegen müssen DOIs mit Hilfe eines Verzeichnisses zu einer Adresse aufgelöst werden. Dazu müssen die Dokumente kostenpflichtig mit den Verzeichnisbetreibern registriert werden. Ein direktes Verlinken ist meist ebenfalls nicht möglich. Nicht schick und sehr Web 0.8.

Tim Berners-Lee argumentiert, dass sich URLs nicht verändern (sollten). Deswegen könnte man sie auch ohne Weiteres für die Adressierung von Dokumenten verwenden. Ich finde das viel sympathischer und web-kompatibler.

Also, Anforderung 1: zitierfähige Dokumente brauchen eine stabile URL!

Moving targets

Artikel in Weblogs sind momentan nicht zitierfähig. Auf der einen Seite, weil sie keinem Review-Prozess unterliegen; viel wichtiger aber noch, weil sie sich verändern können. Beim Zitieren vermerkt man deswegen das Datum, an dem man das Dokument betrachtet hat. Aber das hilft nicht.

Es ist common practice geworden, nachträgliche Veränderungen in Artikeln textlich zu markieren. Darauf kann man sich nicht verlassen, weil der Autor die Markierungen manuell vornehmen muss. Auch ist der originale Wortlaut in der Regel nicht reproduzierbar.

Es wäre ein Leichtes, Versionierung in Publikationsanwendungen für das Web einzubauen. Wenn in einem Weblog, Content Management System oder sonstwo eine Seite verändert wird, wird einfach eine neue Version erzeugt, die man auch direkt referenzieren kann. Das könnte dann z.B. so aussehen: http://www.domain.com/papers/fürchterlichinteressantespaper/versions/6

Anforderung 2: zitierfähige Dokumente brauchen Versionierung!

Web 2.0

Die Diskussion und Kritik von Ideen ist ein zentraler Pfeiler der Wissenschaft. Sie findet meist privat, auf Konferenzen oder innerhalb eines wissenschaftlichen Magazins statt.

Das Web 2.0 verspricht hier eine Öffnung: Durch Trackbacks ist eine anwendungs- und sozusagen “medienübergreifende” Diskussion möglich. Ein Dokument “weiss” auf einmal, wer sich darauf bezieht. Für wissenschafltiche Artikel wäre der Artikel dann gleichzeitig das Portal für die zugehörige Diskussion (so wie das in Weblogs schon funktioniert). Diese ist dann nicht mehr auf die wissenschaftliche Welt beschränkt sondern öffnet sich für alle Nutzer des Web.

Ein Schmakerl noch zusätzlich: Wenn jeder Artikel Metadaten wie Titel, Autor usw. in maschinenlesbarer Form enthält, reicht es, für’s Zitieren die URL des Artikels zu kennen. Kein nerviges Von-Hand-Ausfüllen mehr.

Anforderung 3: diskussionsfreundliche Dokumente brauchen Trackbacks

Anforderung 4: zitierfreundliche Dokumente brauchen einheitliche Metadaten

Und jetzt?

Na, ein System bauen, das die genannten Anforderungen erfüllt! Die einzelnen Technologie für alle genannten Beispiele ist schon vorhanden und verbreitet im Einsatz (Weblogs, Wikis, Content Management Systems). Allerdings habe ich noch kein Beispiel gefunden, dass alle Technologien zusammen einsetzt.

Ich habe im Moment keine Lust, mir noch ein Projekt anzuhängen. Aber wenn jemand sowas implementieren möchte (oder eine Geschäftsidee hat) können wir uns gerne auf einen Kaffee treffen :-)

Unkonferenz-Management-Software

13. October 2008

Liebe Leser,

ich suche nach einer web-basierten Konferenzplanungssoftware mit folgenden Eigenschaften:

  • Tagesplanung mit Zeit-Slots
  • Termine/Vorträge mit einem Klick und Eingabe des Titels erstellt werden
  • Termine/Vorträge lassen sich im Zeitraster hin und herziehen (ja, drag-n-drop)
  • mehrere Tracks (also z.B. mehrere Räume) parallel müssen unterstützt werden
  • jede Terminänderung erzeugt ein abonnierbares Event (Atom oder RSS)
  • jede Veranstaltung hat eine URL, die sich nicht ändert (/event/foo oder /event/567)
  • die Anwendung steht unter einer freien Lizenz, die Modifikationen erlaubt
  • Bonus: die Anwendung hat ein integriertes Wiki

Wenn jemand sowas kennt (auch, wenn nicht alle Anforderungen berücksichtigt sind), bitte im Kommentar verlinken.

Wir machen unsere Sicherheit selbst!

10. October 2008

Google implementiert SAML selbst und “vergisst” dabei eines der wichtigsten Features. Lernt man nicht irgendwann in seiner Computerkarriere, dass man standardisierte Sicherheitsprotokolle nicht mal “so eben” selbst implementiert?

Aus aktuellem Anlass…

9. October 2008

Freedeom Not Fear

… morgen ist Demo in Berlin (und auch in anderen Orten)! Kommt in Alu oder im Anzug!

Gegen die Freiheit, äh, die Raubkopien…

23. September 2008

Ein bißchen kurzfristig, aber wer sich noch nicht damit beschäftigt hat, möge sich doch bitte mal etwas Hintergrund über das Telekom-Paket anlesen, dessen erste Lesung im Europa-Parlament morgen (24.9.) ist. Es geht in einigen Änderungsanträgen um eine Aushebelung des Richtervorbehalts bei der Herausgabe persönlicher Daten durch die Telekommunikationsfirmen an Rechteinhaber (also die Film- und Musikindustrie).

Am effektivsten ist ein Anruf beim Europa-Abgeordneten eures Vertrauens. Die Nummern findet ihr hier.