Blog

  • XSS – Cross Site Scripting mit Bildern – Drupal Security Teil 1

    XSS – Cross Site Scripting. Was ist das? Wikipedia erklärt das am Besten:

    Cross-Site Scripting (XSS) bezeichnet das Ausnutzen einer Computersicherheitslücke in Webanwendungen, indem Informationen aus einem Kontext, in dem sie nicht vertrauenswürdig sind, in einen anderen Kontext eingefügt werden, in dem sie als vertrauenswürdig eingestuft werden. Aus diesem vertrauenswürdigen Kontext kann dann ein Angriff gestartet werden. [Wikipedia]

    Also, ein Beispiel wäre wie folgt. Ein Benutzer schreibt einen Forumsbeitrag und schleust dort einfach ein kleines Script ein, z.B.:

     <script type="text/javascript">alert("XSS");</script>

    Wenn man das einfach so ohne Weiteres in die Datenbank schreibt, dann wird der nächste Forenbesucher ein kleine Messagebox angezeigt bekommen, welche "XSS" sagt. Ist eigentlich in diesem Fall nicht weiter schlimm, aber was wäre, wenn da jetzt eine Ajax Verbindung zu einem Server aufgebaut wird, und drin ein Keylogger versteckt ist? Es ist relativ offensichtlich, dass es wahrscheinlich relativ schnell gefährlich werden kann.

    Was kann man dagegen machen? Ist eigentlich relativ einfach: Die Tags löschen oder entsprechend in HTML Entities umformen:

    &lt;script type="text/javascript"&gt;alert("XSS");&lt;/script&gt;

    Das wird dann einfach dargestellt, aber nicht mehr ausgeführt. Wenn man ein Forum erstellt, so kümmert sich Drupal darum, vorausgesetzt, man stellt die Input Formats richtig ein. Per Default sind diese auf Filtert gesetzt. Das heisst, es werden nur ganz wenige HTML Tags zugelassen. Das lässt sich natürlich auch ändern. Das heisst aber sowiel, dass wenn man CCK und Co verwendet ist man eigentlich auf der sicheren Seite.

    Wer jedoch selber Module entwickelt, der muss sich auch selber darum kümmern, denn z.B.

    hook_menu wird implementiert. Der Benutzer kann ein argument eingeben, welches an die Callback Funktion übergeben wird, welche dann das Argument auf der Seite ausgibt. Wenn man nichts mit dem Input macht, so kann der Benutzer auch irgend etwas eingeben -> Schlecht.

    In Drupal gibt es die Funktion check_plain. Die macht genau das, was man braucht. Sie verhindert XSS Sicherheitskücken. Das heisst für den Entwickler: Jeglicher Input Text muss durch diese Funktion geschleust werden -> wenn es lediglich normaler Text sein soll!

    Im nächsten Teil geht es um Sicherheitsattacken via Bilder.

  • Keine Berechtigung, Seiten zu editieren, obwohl Permission gegeben

    Es handelt sich um eine sehr triviale Seite. Kein Schnickschnack. Halt einfach eine Seite mit Inhalten. Komischerweise hat sich eine Benutzerin beschwert und gemeint, sie habe bei einigen Seiten keine Rechte, um diese zu editieren -> komisch? Es sind alles Seite von Typ "Page". Ich habe schnell die Rolle überprüft und eigentlich ist das richtige Häckchen gesetzt. Rechte sollten vorhanden sein. Masquerade einschalten und überprüfen. Node/6/edit -> geht. Node/7/edit -> kein Zugriff. Grrr.

    Nein, keine Zusätzliche node_access Module installiert. Hm, was könnte es wohl sein. Mal ein paar mehr Rechte geben, zum Schauen, ob das was ändert -> nichts. Dann pling. Die zündende Idee: Filter! Und siehe da. Die Seiten, welche nicht editierbar waren, waren auf Filter (HTML Full) gesetzt, obwohl der Benutzer für dieses Input Format (oder eben Filter) keine Rechte hat. Das führt dazu, dass der Node natürlich ohne Weiteres angezeigt wird, sobald man den aber editieren möchte man kein Recht dazu hat.

    So simpel! Und doch hat mich das 30 Minuten gekostet.

  • Drupal Interface Module – Nodeformaussehen verändern

    Wow. Was man nicht alles machen kann. Eigentlich wollte ich diesen Link nur schnell Bookmarken, damit ich das zu einer besseren Zeit mal ausprobieren kann. Modul sieht absolut cool aus. Via Drag and Drop lässt sich das Interface für einen Node verändern, sprich den Save Button verschieben usw.

    Am Besten einfach mal das Screencast angucken, um zu verstehen, was gemeint ist. Es ist ziemlich straight forward. Das Modul scheint jedoch noch nicht veröffentlicht zu sein 🙁 schade. Kommt aber noch.

    Ich denke besonders für Seiten, wo viele Benutzer arbeiten, könnte es manchmal gut sein, die ganzen Elemente ein wenig besser anzuordnen… scheint als schreit die ganze Community nach mehr Usability… usability, usability. Aber hey… es ist auch sehr wichtig, da ja nicht nur Freaks und Hacker mit Kommandozeile Drupal bedienen wollen, sollen auch normalsterbliche wie du und ich.

  • Previon AG ich komme

    Mein Studium neigt sich langsam aber sicher einem Ende zu 🙂 … Endlich. Knapp 5 Jahre sass ich in den Höhrsälen und war sehr oft froh und dankbar, dass die Uni ein ziemlich flächendeckendes W-Lan hat 🙂 Das hat doch so manche Stunde gerettet.

    Nun, es geht zu ende und ich habe mich in den letzten Monat relativ intensiv nach Stellen umgeschaut. Es hat jetzt eine Ende. Per 1. Mai 2009 werde ich für die Previon AG in Zofingen arbeiten, und werde mich dort intensiv mit Drupal befassen… ihr werdet mich also nicht los, und ich denke, das wird mir die Gelegenheit geben, wieder vermehrt über Drupal zu bloggen. … stay tuned.

  • Drupal 7 – User Experience verbessern II

    Der eine oder andere hat das Video wohl schon gesehen. Leisa und Mark sind zuständig für das neue Drupal.org Design und die Informationsarchitektur (welches übrigens gut vorankommt). Acquia hat die beiden auch angeheuert, am User Experience für Drupal 7 zu arbeiten. Mit dem User Experience ist einfach das allgemeine Erlebnis gemeint.

    Die beiden haben auf jeden Fall einen sehr schweren Stand 😉 (Design by Community ist nicht ganz so einfach). In einem interessanten Post hat Leisa beschrieben, warum sie als Plattform WordPress brauchen und nicht Drupal. Und wenn man den beiden zuschaut, wird einem recht schnell bewusst, dass die keine Ahnung von Drupal haben.

    Aufgrund meiner Masterarbeit musste ich ebenfalls ein paar Nutzertests durchführen und es kann manchmal echt frustrierend aber sehr erleuchtend sein. Dinge die man baut, die für den Entwickler vollkommen Sinn machen, scheinen für den normalen Benutzer absolut sinnlos zu sein.

    Ich kann daher jedem Entwickler raten, immer mal einem Ahnungslosen über die Schulter zu schauen… so viele Kleinigkeiten können sehr schnell behoben werden, wenn man es nur wüsste!

  • Performance messen

    Habe gerade ein neues kleiner Modul gesehen: dTools (Diagnostic Tools). Habe es mal kurz ausprobiert, aber leider gibt es irgendwie Probleme mit dem Charts Module 🙁

    So konnte ich es leider nicht ausprobieren und ich habe es mal bis auf weiteres wieder deinstalliert. Ich wollte eigentlich schon mal einen Benchmark durchführen, aber für Windows gibt es solche Tools anscheinend nicht und mit Linux bin ich noch ein wenig auf Kriegsfuss. Ich würde es ja wirklich gerne erlernen, aber … die Zeit und wo ist der zusätzliche Nutzen? aber das ist ein anderes Thema.

    Falls schon jemand dTools zum Laufen gebracht hat -> ich würde mich über einen kleinen Kommentar freuen.

  • Drupal 7 – User Experience verbessern

    Damit Drupal 7 für alle benutzbar wird, wird versucht möglichst viele Leute am Prozess teilhaben zu lassen. Da ich gerade noch an meiner Masterarbeit bin, habe ich leider gerade nicht so viel Zeit, aber in ein paar Wochen sieht es wieder vieeel anders aus 🙂 Aber falls sonst jemand dran interessiert ist: http://www.d7ux.org/

  • Ode on Programmierung

    Nicht dass ihr denkt, dass ich ganz von der Bildfläche veschwunden bin. Ich bin nur im Moment gerade so vertieft in meine Masterarbeit. In genau 4 Wochen ist abgabetermin und bis da muss alles niet und nagelfest sein.

    Da ist zwischen durch ein lustiges Video eine angenehme Abwechslung.

  • Drupal Media Camp – Einladung

    Im Mai findet das erste Drupal Media Camp in der Schweiz statt.

    An zwei Tagen erfährst Du anhand praktischer Beispiele, wie mit Drupal Kommunikations-, Kollaborations- und Community-Webprojekte realisiert wurden. Erfahrene Entwickler zeigen Anwendungen, die sie im Medienumfeld aufgebaut haben.

    Das Drupal Media Camp bietet Entscheidungsträgern der Medienindustrie Anwendungsbeispiele für den erfolgreichen Einsatz von Open Source CMS Drupal und die Möglichkeit zum Networking in der Community.

    Hier findest Du alle Informationen: DrupalMediaCamp.ch

    Wir freuen uns auf zahlreiche Teilnahme aus der Community und aus der Medienbranche. Angesprochen sind neben Teilnehmern aus der Schweiz, Deutschland und Österreich auch englisch- und französischsprachige Interessenten. (Zusatzinfos zur Mehrsprachigkeit folgen.) Die internationale Resonanz ist bisher gross.

    Der Anlass findet an den zwei Tagen Freitag und Samstag 08.-09. Mai 2009, jeweils 09:00-17:00 statt.

    Das Gemeinschaftszentrum Telli in Aarau bietet und eine hervorragend geeignete Umgebung.
    http://drupalmediacamp.ch/content/ort

    Infos und Anmeldung unter:
    http://drupalmediacamp.ch/anmeldung

    Die Teilnehmerzahl ist beschränkt, also möglichst bald anmelden.

    Wir freuen uns auf Deinen Besuch!

  • Feeback zum Themebuilder gesucht

    Der Christian hat mich gefragt, ob ich mal einen Blick auf den Themebuilder werfen kann. Leider bin ich im Moment gerade überflutet mit Arbeit und habe dafür gerade keine Zeit. Es scheint aber eigentlich ein recht nützliches Projekt zu sein, wenn man schnell ein Template will, aber sich 1. nicht ein bestehendes nehmen möchte und 2. nicht Garland will.

    Also Leser. Schau dir mal den Themebuilder an und poste dein Feedback in den Kommentar. Ich bin ja auch gespannt.