WebVariants GbR
WebVariants GbR

web and variants | Weblog

Ein Weblog über das Web, Web-Design, Web-Entwicklung, Usability, Communities, Unternehmensgründung und die Firma webvariants.

Frisch im Netz: IMG & Architekturbüro Weinert

10. März 2010 von Wolf Brüning

In den letzten Tagen sind wieder zwei sehr interessante Projekte online gegangen:

Screenshot IMG

Dies ist zum einen der neue Auftritt der Investitions- und Marketinggesellschaft von Sachsen-Anhalt. Diese Website wurde zusammen mit der Agentur UCDplus aus Magdeburg umgesetzt, die sich für Konzeption sowie Design und Layout verantwortlich zeigten. Die komplexen Entwürfe wurden von uns auf Basis des Content-Management-Systems Typo3 realisiert.

Screenshot Architekturbüro AW

Weiterhin konnten wir eine sehr interessante Website für das Architekturbüro Weinert aus Magdeburg umsetzen. Hier wurde das Projekt in Zusammenarbeit mit Hagen Aedtner realisiert und basiert auf dem Content-Management-System Redaxo.

Kategorie: Portfolio | 0 Kommentare

Heute ist wieder Webmontag

8. März 2010 von Wolf Brüning

Heute abend, ab 19 Uhr findet im Riff in der Sternstraße (hier am Hasselbachplatz) der dritte Magdeburger Webmontag statt. Bei diesem Treffen der lokalen Webszene gibt es wieder die Möglichkeit zu Präsentationen und Diskussionen über alle Themen, die Webentwickler, Webdesigner, Web-Entrepreneure, Experten, Studenten und Interessierte betreffen. webvariants wird selbstverständlich auch an diesem Webmontag teilnehmen und wir freuen uns auf einen Abend mit interessanten Vorträgen und anregenden Gesprächen. Unsere Leser möchten wir hiermit auch zu diesem Termin einladen – sofern sie grad in der Nähe sind.

PS: Nach einem Organisationstreffen in der vergangenen Woche wurde übrigens festgelegt, dass der Magdeburger Webmontag künftig in monatlichem Turnus am jeweils zweiten Montag des Monats stattfinden wird. Die zukünftigen Termine kann man sich also gleich schon mal blocken.

Kategorie: Lokales, Messen & Konferenzen | 2 Kommentare

Security-Fix für REDAXOs TinyMCE-AddOn

19. Februar 2010 von Christoph

REDAXO-Logo Das Standard-TinyMCE-Modul aus REDAXO enthält einen Fehler, über den es möglich ist, (fast) beliebigen Code auszuführen. Der Inhalt des Editors wird über die HEREDOC-Syntax abgerufen. In dieser findet jedoch die Interpolation von bestimmten Elementen (bekanntestes Beispiel sind einfache Variablen) statt. Über die {${foo()}}-Syntax ist es nun möglich, Code auszuführen.

Folgende Eingaben sollte man im Backend lieber nicht tätigen:

  • $REX
  • {${print("hallo")}}
  • {${print_r($REX)}}
  • {${mysql_query("UPDATE rex_user SET name = 'Pwned!' WHERE 1")}}
  • hallo
    EOD;
    noch mehr text.

Die ersten vier Eingaben sind noch relativ harmlos. Die letzte wird hingegen zu einem Parse Error führen (Achtung: Der Artikel kann dann auch nicht mehr ohne Weiteres im Backend bearbeitet werden!) und vermutlich nur bei deaktiviertem JavaScript funktionieren, da der TinyMCE sonst keine Zeilenumbrüche zulässt.

Bei Installationen mit nur einem Benutzer dürfte sich dieses Problem nicht äußern, da man sich eher selten selber hacked. Wenn allerdings in einem REDAXO mehrere Benutzer mit teilweise eingeschränkten Rechten existieren, kann es gut möglich sein, dass Alice und Bob nach ihrer Kündigung erstmal noch die halbe Datenbank löschen, bevor sie ihren Schreibtisch aufräumen. Immerhin können sie problemlos Datenbank-Queries ausführen lassen.

Unser Patch baut auf das TinyMCE-AddOn aus REDAXO 4.2.1 auf und verändert es so, dass zwei neue Variablen eingeführt: REX_SQ_VALUE für Single-Quoted-Strings und REX_DQ_VALUE für Double-Quoted-Strings. Diese neuen Platzhalter können, wenn das AddOn aktiv ist, in allen Modulen genutzt werden. Sie werden wie folgt genutzt:

$foo = 'REX_SQ_VALUE[1]';
$bar = "Mi nomo estas REX_DQ_VALUE[2].";

Durch die gesonderte Angabe des enthaltenen Strings ist es möglich, ein korrektes Escaping durchzuführen.

Der Patch ist unter MIT-Lizenz veröffentlicht und kann hier in Form einer Patchdatei (für die Nerds unter unseren Lesern) oder als gezip’tes AddOn heruntergeladen werden.

Das grundlegende Problem, Texte über HEREDOC-Syntax auszulesen, ist damit natürlich nicht behoben. Wer kann, sollte zur NOWDOC-Syntax aus PHP 5.3 greifen. Alle anderen sollten aufpassen, nicht aus Versehen Eingaben von Besuchern über HEREDOCs auszulesen.

Kategorie: Webentwicklung | 3 Kommentare

REDAXO auf die Sprünge helfen

19. Februar 2010 von Christoph

Nachdem wir bereits besprochen haben, wie man die Datenbank allgemein glücklich(er) machen kann, wollen wir das Gelernte heute direkt praktisch anwenden. Natürlich gibt es jetzt keine neue Version von REDAXO, in der auf Biegen und Brechen die Queries optimiert wurden, dafür aber ein kleines SQL-Script, das die Performance größerer Seiten (alles ab 200 Artikeln wird davon profitieren) wesentlich verbessern kann.

ALTER TABLE rex_article
    ADD INDEX `id` (`id`),
    ADD INDEX `clang` (`clang`),
    ADD UNIQUE INDEX `artikel_finden` (`id`, `clang`),
    ADD INDEX `re_id` (`re_id`);
 
ALTER TABLE rex_article_slice
    ADD INDEX `id` (`id`),
    ADD INDEX `clang` (`clang`),
    ADD INDEX `re_article_slice_id` (`re_article_slice_id`),
    ADD INDEX `article_id` (`article_id`),
    ADD INDEX `slices_finden` (`clang`, `article_id`);
 
ALTER TABLE rex_file
    ADD INDEX `re_file_id` (`re_file_id`),
    ADD INDEX `category_id` (`category_id`);
 
ALTER TABLE rex_file_category
    DROP PRIMARY KEY,
    ADD PRIMARY KEY (`id`),
    ADD INDEX `re_id` (`re_id`);
 
ALTER TABLE rex_module
    DROP PRIMARY KEY,
    ADD PRIMARY KEY (`id`),
    ADD INDEX `category_id` (`category_id`);
 
ALTER TABLE rex_user
    ADD UNIQUE INDEX `login` (`login`(50));

Das gesamte Script (unglaubliche 1 KB, wovon nur 0,5 KB eigentlicher Code sind) kann man sich der Bequemlichkeit halber natürlich auch direkt herunterladen.

Bei kleinen Seiten ist der Unterschied nicht zu bemerken. Gerade, wenn alle Inhalte im Cache liegen und immer nur brav über die REDAXO-API die Daten von Artikeln angefragt werden, bringen die zusätzlichen Indizes kaum etwas. Wer jedoch in AddOns durchaus etwas mehr Daten anfasst (zum Beispiel, wenn ganze Sprachinhalte kopiert werden sollen), wird dramatische Verbesserungen bemerken.

Eine semantische Änderung sollte noch angesprochen werden, damit sich niemand später beschwert: bei den Medienkategorien geht der Primärindex nun nicht mehr über die ID und den Titel, sondern nur noch über die ID. Wir haben bei bestem Willen nicht erraten können, warum der Titel einer Kategorie Teil des Primärindex sein sollte.

Kategorie: Webentwicklung | 2 Kommentare

Der Weg zum eigenen Unternehmen – Teil 4

19. Februar 2010 von Christian Metzeler


Es ist schon fast eineinhalb Jahre her, dass ich die Beitragsreihe “Der Weg zum eigenen Unternehmen” geschrieben habe. Im dritten Teil kündigte ich an, mich im vierten Teil mit den ersten Monaten Betrieb und einigen Zahlen auseinanderzusetzen. Das mit den Zahlen habe ich zwischenzeitlich gemacht, aber einen echten vierten Teil gab es nicht. Daher schreibe ich jetzt mal mit der Perspektive auf ein komplettes Geschäftsjahr mit vielen Ereignissen diesen Teil.

Denn der durchaus erfolgreiche Verlauf des Jahres 2009, das bei uns kein Krisenjahr war, hat uns auch gewisse Probleme beschert. Und diese sind besonders interessant, denn Erfolg kann einem auch Kopfschmerzen bereiten. Besonders erfolgreich war beispielsweise, dass für den Auftrag für die technische Umsetzung des Projekts Pharmatching.com gewonnen haben. Für dessen technische Betreuung sind wir auch weiterhin zuständig (und haben übrigens heute ein kleines Resdesign live geschaltet). Das Projekt war unser größter Einzelauftrag in 2009 und hat einen gewissen Anteil am Wachstum der Firma gehabt. Immerhin sind wir mit 5 Mitarbeitern ins Jahr 2009 reingegangen und mit 9 haben wir es beendet. Auch die engere, schon freundschaftliche Zusammenarbeit mit unseren Partnern von UCD+ hat dazu beigetragen. Aber dieses Wachstum hat uns auch Probleme beschert, denn wir mussten erkennen, dass wir mit diesem Wachstum auch unsere Organisation verbessern müssen. Insbesondere das Projektmanagement müssen wir noch verbessern. Hier haben wir in den letzten Monaten durch die Nutzung von GoogleWave (für kleinere, nicht sicherheitskritische Projekte) schon einige Fortschritte erzielen können.

Wo wir auch was tun mussten (und getan haben), war die Qualitätssicherung. Zunächst haben wir diese durch den Entwickler selbst durchführen lassen. Das war eher minder erfolgreich, denn der Entwickler eines Projekts ist ein schlechter Kontrolleur seiner eigenen Arbeit. Als nächsten Schritt haben wir zwei externe Mitarbeiter mit dem Prüfen fertiggestellter Redaxo- und Typo3-Projekte herangezogen. Das war zwar schon ein Fortschritt, aber so richtig gut hat das immer noch nicht funktioniert, weil diese als Nicht-Entwickler zwar in Front- und Backend Fehler aufspüren konnten, aber nicht im Code. Seit Anfang 2010 ist nun einer unserer Entwickler sozusagen Halbzeit mit der Qualitätskontrolle betraut und wird jedem Taks eines jeden Projekt als QA-Manager zugewiesen. Für ihn ist das natürlich eine erhebliche Arbeit. Aber für die Entwickler dieser Projekte ergeben sich dadurch haufenweise QA-Tasks. Somit verlassen unser Projekte den Laden nun tatsächlich mit einer höheren Qualität. Im Nachhinein erspart uns das zusätzlichen Zeitaufwand, um ein bereits abgeschlossenes Projekt nicht wieder öffnen und sich dort reindenken zu müssen.

Schwieriger wird auch die finanzielle Steuerung: die Projekte wurden vom Umfang her größer und dauern somit länger. Wir müssen daher mehr auf Zahlungsbedingungen achten, denn wenn wir bspw. sechs Wochen an einem Projekt mit einer Mannstelle sitzen, reicht es vielleicht nicht immer, erst nach Abnahme bezahlt zu werden… zumal wir auch immer wieder feststellen, dass Kunden zwar jede 50 Euro Ersparnis gerne mitnehmen, dann aber selbst bei Low-Budget-Projekten die Zahlungsfrist nicht nur um zwei Wochen sondern eben eher drei Monaten überschreiten. Das bedeutet, dass wir bspw. mehr mit Teilvorauszahlungen für größere Projekte arbeiten müssen, um nicht in Liquiditätsprobleme zu geraten. Und das wiederum Kunden zu verklickern, ist nicht immer einfach. Aber es muss gemacht werden.

Durchaus beunruhigend war auch die Situation, als uns eine Kundin mit einer Schadenersatzforderung belangt hat. Nach dem ersten Schreck haben wir zu unserem Glück unsere Haftpflichtversicherung herangezogen. Unsere Versicherung ist speziell für IT-Firmen ausgelegt und die hat sich des Falles angenommen. Es war für uns außerordentlich beruhigend, dass der Versicherer HISCOX sich nicht mit Formalien oder Blabla aus der Verantwortung winden wollte, sondern sich zügig um die gesamte Bearbeitung gekümmert hat – wenn vielleicht auch nicht so, wie es sich die nun ehemalige Kundin das vorgestellt hat. Meine Empfehlung daher: eine Haftpflichtversicherung für IT-Firmen ist Pflicht für jedes Webentwicklungsunternehmen. Denn in unserer Branche geht es nur selten um Personenschäden, sondern eher immer um Vermögensschäden.

Insgesamt war 2009 ein gutes Jahr, in dem webvariants deutlich vorangekommen ist. Aktuell gilt es für uns: professioneller werden, besser werden, schneller werden, hochwertiger werden und trotzdem die Liebe zum Web und dem Arbeiten darin nicht zu verlieren. Wir werden am Jahresende 2010 sehen, ob das geklappt hat. :-) Es bleibt sicher spannend.

Kategorie: Gründerinfos, Unternehmen | 1 Kommentar

Ältere Einträge >


©2008 webvariants GbR - Breiter Weg 232a - 39104 Magdeburg - Tel.: +49 391 40649780 - www.webvariants.de