Entries Tagged as ''

Nun ist es dann doch recht schnell gegangen

Nachdem wir vor knapp vier Wochen das letzte Mal beim Tierarzt waren mit unserem Kater Moritz, weil er stark abgenommen und Probleme beim Toilettengang hatte, mussten wir ihn heute leider einschläfern lassen.

Beim letzten Tierarztbesuch hatte er ein Antibiotikum bekommen, um die Entzündung der Nieren zu bekämpfen. Danach ging es ihm zeitweise wieder besser – allerdings leider nur kurzfristig. Heute morgen war es dann soweit. Er hatte Probleme mit der Atmung und würgte ständig Wasser hoch. Wir sind dann zum Tierarzt und haben ihn auf anraten der Ärztin einschläfern lassen.

Moritz war ein prima Begleiter. Ein richtig verschmuster roter – in seinen besten Zeiten – dicker Kater der unheimlich gerne Schokopudding schleckte, aber auch immer für ein Nickerchen zu haben war. Als wir ihn vor 10 Jahren aus dem Tierheim holten war er schon c.a. fünf Jahre alt und sehr ängstlich. Das hat sich aber sehr schnell gegeben und er war immer der Chef im Haus.

Moritz ich werde Dich sehr vermissen.

Code per nummerierter Liste hervorheben

Nun es begab sich, dass ich auf dem Weg war mir eine Anregung – eigentlich ein Plugin – zu suchen, um Code-Schnipsel auf meinem Blog in das rechte Licht rücken zu können und diese *&/)§=?”* (unverzeihliche Flüche) Darstellung von Code über Wordpress endlich in den Griff zu bekommen.
Nachdem ich ein paar Plugins installiert hatte, die aber nie genau das konnten was sie versprachen oder aber mehr taten als sie sollten, stolperte ich über eine wunderbare CSS-Lösung. Das ich da nicht selber draufgekommen bin wurmt mich etwas, aber ich habe irgendwie in letzter Zeit den Kopf etwas voll und man kann ja nicht auf alles immer selber kommen. [Read more →]

Cookie-gesteuertes ein- und ausblenden von Seitenelementen

Die Elemente der Sidebar meines Blogs und die Jumpbox, werden über script.aculo.us und prototype ein und ausgeblendet. Das alleine ist noch keine Besonderheit bzw. ist es mittlerweile wohl nicht mehr.

Ich habe das ganze jetzt durch ein Funktionalität bzw. durch ein Skript erweitert, welches die Sichtbarkeitseinstellungen, die ein Besucher meines Blogs macht, bzw. für sich setzt durch ein-/ bzw. ausblenden der einzelnen Elemente, in einem Cookie speichert. Mir war wichtig, dass zum einem die Einstellungen des Users in einem Cookie gespeichert werden und zum anderen diese Daten möglichst einfach aus dem Cookie über PHP ausgelesen werden können.
Dazu nutze ich eine Funktion, die einen Array in einen serialized Array, sprich einen String umwandelt, der über die PHP-Funtion “unserialize” wieder in einen Array zurückumgewandelt werden kann und somit die jeweiligen Elemente ein- bzw. ausgeblendet dargestellt werden, wenn die Seite neu geladen wird.

Das Javascript bietet zum einen ein paar Standard-Funktionen, um ein Cookie zu schreiben, zu löschen, auszulesen und ein Wert in einem Cookie mit einem serialized Array zu ändern oder zu löschen. script.aculo.us benutze ich in diesem Zusammenhang nur für die grafischen Effekte – sprich das ein- und ausblenden von Elementen.

Kurze Einbauanleitung:

Nun ersteinmal benötigen wir einen Layer, der ein- und ausgeblendet werden soll, mit einer eindeutigen(unique) ID. Sprich irgend ein Div-Layer, welcher Inhalt umschließt, der ein- und ausgeblendet werden soll. Dort setzen wir als Attribut eine ID.

id="unique_id_1"

Dann brauchen wir noch einen Link, über den wir diesen Layer ein-/ und ausblenden können und der onclick einen Event auslöst (Könnte auch im href stehen – mag ich aber nicht so).

onclick="swap_content('unique_id_1');"

Da die ganze Funktionalität ein Cookie für 14 Tage speichert und es bei erneutem Besuch innerhalb dieses Zeitraums, sprich der 14 Tage, erneuert für weitere 14 Tage, benötigen wir noch diesen Funktionsaufruf (am sinnvollsten onload auf jeden Fall aber zu Beginn des Seitenaufbaus bzw. der XHTML-Struktur): [Read more →]

Betriebsausflug Fliks nach Rom – Reisebericht

Eins vorne weg: Rom steht noch. Nachdem es über 2750 Jahre überstanden hat, konnte es auch der fliksche Ansturm es nicht besonders beeindrucken und hinterließ keine sichtbaren Spuren.

Am 08.09.2006 ging es also los nach Rom. Es waren alle dabei und die Büros der fliks it-solutions GmbH waren somit total verweist. Der Abflug und die Anreise nach Rom ging ohne größere Probleme von statten, wenn man mal von der üblichen Verspätung der deutschen Bahn AG absieht und dem dadurch etwas hektischerem einchecken absieht.

Angekommen in Rom, sind wir dann vom Flughafen mit einem Zug und der einer der beiden U-Bahnen(Linie A) zum Hotel gefahren (Ja. Rom steckt was den öffentlichen Nahverkehr angeht noch in den Kinderschuhen – die Römer fahren lieber mit dem Auto bzw. dem Roller/Motorrad wie es scheint – Umweltschutz ist nicht so das Thema in Rom, aber dazu später mehr).

Nachdem wir also eingecheckt hatten im Hotel sind wir wunderschön Essen gegangen in Rom und mussten gleich feststellen, dass die Portionen in Rom um einiges größer sind als bei einem Italiener in Deutschland bzw. in Deutschland insgesamt. Es gab alleine – glaube ich aus meinem Gedächtnis entlocken zu können – zehn verschiedenen Vorspeisenplatten. Dann einen mächtigen Teller mit Nudeln und einen riesigen Teller mit Zitronenkuchen hinterher. Fast wären wir alle gemeinschaftlich an unserem ersten Abend in Rom geplatzt. [Read more →]

Post von Kasper Skårhøj

Nachdem Korrupt und ich, Kasper eine Mail zu der Möglichkeit von XSS (Cross Site Scripting)-Attacken über tipafriend in Typo3 geschrieben haben ist gestern dann tatsächlich eine Antwort ins Haus geflattert.Was mich ein wenig verwundert, ist, das er schreibt das er Typo3 nicht berührt sieht von diesem Problem, da Typo3 ein sehr hohes Sicherheitsniveau hat.

Generally, TYPO3 has a high security level and I don’t see that affected by this issue.

Mittlerweile gibt es einen Bugfix zu diesem Problem auf typo3.org und eine kurze News dazu gibt es auch. Allerdings ist es völlig falsch, wie in der News geschrieben wird, dass es nicht möglich sei/gewesen sei Javascript-Code auszuführen, denn ich konnte auf etlichen Seiten Cookies auslesen über eingefädelte Javascripts und hätte diese Daten ohne weiteres bei mir in der DB loggen können. Wenn ich dazu komme, werde ich mal ein kleines Beispiel dazu posten. Wobei die eigentliche Problematik von XSS ja auch mehr in der Veränderung von Seiten zum Erwerb vertraulicher Daten von unbedarften Internet-Nutzern liegt.

Da bin ich anderer Meinung. Man muss nur kurz überlegen, in wie weit es in der Hand eines Entwicklers einer Extension liegt, ob und wie er Sicherheitsmechanismen von Typo3 nutzt oder nicht oder ob er einfach GET-Parameter z.B. direkt abgreift und wieder ausgibt, ohne sie auf die Validität und Sicherheit der Daten zu überprüfen.
Ins Repository stellen kann er seine Extension aber trotzdem und so lange das mit dem Review nicht so richtig anläuft auf typo3.org wird es auch immer einen Nutzer geben, der diese Extension downloaden und installieren wird.
Von Programmierung hat er gerade so viel Ahnung, dass er seine Extensions ans laufen bekommt. Den Quellcode einer Extension schaut er sich nicht an – wozu auch, er versteht ihn doch nicht. Er vertraut also auf die gewissenhafte Arbeit des Entwicklers – gewissenhaft sollte sie auch sein, aber ob sie es immer ist???

Klar. Ich bin sicher, das Typo3 einen hohen Standard an Sicherheit bietet, allerdings finde ich diese Antwort etwas blauäugig und etwas arrogant, wenn ich ehrlich bin.

Trotzdem bin ich aber dankbar, dass er zurückgeschrieben hat. Ich werde jetzt eine Mail ans Security-Team schicken und hoffe, dass ich dort eine etwas genauere Auskunft bekomme, die etwas mehr ins technische Detail geht – Vielleicht mit einem cc an Kasper…;)

Ach und noch was: wenn Kasper nicht mehr zuständig ist, sollte man ihn vielleicht als Author entfernen, bzw. als Zusatz den, der die Extension betreut mit aufführen.

Nachtrag: Der Link für das Bugfix funktioniert zur Zeit nicht nicht. Etwas schade…

Links zum Thema:
Aktuelles zu: Typo3/Extensions und XSS
XSS – Cross Site Scripting – Problematik bei typo3/tipafriend
gulli.com: Cross-Site-Scripting in Extensions schafft Angriffsmöglichkeiten
wikipedia zu XSS

TYPO3 3.8 (mit realurl) liefert keinen echten 404er

Weil ich es kürzlich nochmal gelesen habe in einer Mailingliste:
Typo3 in der Version 3.8 liefert keinen 404er als header, wenn man eine Fehlerseite definiert hat. z.B. im Setup eine HTML-Seite für die 404-Ausgabe eingestellt hat.

Typo3 leitet dann zwar brav auf die entsprechende Seite um, wenn es keine passende definierte Seite finden kann, aber als header wird ein “HTTP/1.1 200 OK” ausgeliefert und kein “HTTP/1.1 404 Not Found“, was natürlich nicht nur unschön ist, sondern eher fatal ist.

Ein einfacher, wenn auch nicht 100%tig schöner Weg ist es, das ganze in dem für die Frontend-Funktionen zuständigem File “class.tslib.php” zu beheben. Einfach zu Beginn der Funktion “pageNotFoundHandler()” folgende Zeile einfügen:

header("HTTP/1.1 404 Not Found");

Damit ist dies Sache dann erledigt und es wird auf jeden Fall ein 404er ausgeliefert, wenn eine Seite nicht existiert. In wie weit das noch ein Problem unter Typo3 4.0.1 ist, kann ich noch nicht sagen, werde ich aber über das Wochenende herausfinden, da ich dann an meiner Website weiterarbeiten werde.