XSS – Muss ich später mal recherchieren…

XSS oder Cross site scripting scheint ein Thema zu sein, mit dem ich mich näher befassen sollte, da es mir wichtig ist, potenzielle Gefahren für meine selbst programmierten Websites auszuschalten.
Regentaenzer.de beispielweise läuft noch mit PHPNuke-Backend und sei damit stark von XSS bedroht.

Durch Eric Wagners WeBlog drüben bin ich eben auf diese Seite gestoßen, die ich mir unbedingt zu einem anderem Zeitpunkt mit wachem Verstand anschauen muss.

Auch ein anderer bei Eric gelinkter Artikel klingt vielversprechend und interessant. Er trägt den Titel Smarter Image Hotlinking Prevention und ist unter dieser URL zu finden.

Interessante Verlinkungen zu meinem WeBlog

Ein Check meiner Webstatistik ergab einige interessante Erkenntnisse.

Primär scheinen meine Besucher die URL www.christianscholz.com direkt in den Browser einzugeben, um hier zu landen.

Bei einigen der Referrers (Internetseiten, von denen aus jemand auf cs.com gelangte) ist mir völlig schleierhaft, wie und warum jemand (oder etwas?) von dort aus zu mir gelangt war, wie z.B. der hier, hier oder – ganz obskur – hier.

Auf anderen Referrer-Websites, die und deren Betreiber mir auch noch nicht näher bekannt sind, stiess ich wiederum sofort auf einen Textlink, der zu cs.com zeigt. Vielen Dank an diese Leute! Ich schaue mir Eure Sites in den nächsten Tagen mal genauer an und erwäge dann einen Backlink.

Auch nochmal ein heftiges Dankeschön an Marcel und Stefko, durch deren WeBlogs und Links diverse Leute zu mir gefunden haben/Pageimpressions generiert worden sind. :)

Auch gerade gesehen: Wenn man bei Google die Suchbegriffe “Formfehler Buchhaltung” eingibt, wird mein WeBlog auf Platz 3 genannt. *LOL*

Ferner wurde tatsächlich von jemandem auf meinen Link in einem Antwortsbeitrag in “unserer” NG/WG MM.General.Germany geklickt, zähle ich doch auch diese URL zu meinen Referrers.

PHP-Hilfedatei (chm)

Ich nutze für meine PHP-Programmierarbeiten gern UltraEdit. Nach meinem Rechner-Reset musste ich das Tool natürlich auch erstmal wieder installieren. Darüber hinaus habe ich gern die CHM-Hilfedateien zur Hand, die es ermöglichen, im Skript in UE ein Schlüsselwort zu markieren und dann direkt in der Hilfe nachzuschlagen. Das Tolle daran ist meines Erachtens, dass Nutzerkommentare mit in die Hilfe übernommen wurden.

Hier befindet sich zur Zeit die Downloadseite für HTML- und CHM-Hilfedateien in mehreren Sprachen.
Hier hingegen befindet sich die Downloadseite für allgemeine PHP-Dokumentationen.

Wie ich eben gerade gesehen habe, gibt es auch eine Extended CHM-Datei mit größerem Funktionsumfang. Muss ich mir gleich mal ansehen.

Schnürsenkel verknotet

Mein lieber Herr-Gesangs-Verein! War das ein Kampf.
Gestern nacht wollte ich nach einem Besuch in der Billiardhalle (Roadhouse, Osterstraße, Hamburg; Pool; 6:1 für Mark) in aller Eile ins Bettchen und fummelte im Dunkeln an meinen Halbschuhen herum. Schnürsenkel Nummer eins: Kein Problem. Nummer zwei: Ging nicht. Vielleicht mal mit Gewalt? Super. Ging auch nicht und hat die Sache noch verschlimmert.
Schuh mit beiden Händen gepackt, vom Fuß gezerrt und in die Zimmerecke geschmissen. Ab ins Bett.
Morgens, kurz vor Verlassen des Hauses. Ach, war da nicht noch eine Kleinigkeit? Richtig. Schuhe anziehen. Schuh Nummer eins: Kein Problem. Nummer zwei: … -
Dieser Knoten/Knotenhaufen/undurchsichtiger, wahnwitzig verschlungener Schnürsenkel hätte jeden Seemann oder S/M-Studiobesitzer stolz gemacht! Unglaublich eigentlich, wie heftig (Gruß an Marcello! :) man so ein schlankes Stück Schnur verdrehen kann. Und das beim Versuch, das Gegenteil zu erreichen…

Um es kurz zu machen: Fingerkuppen und -nägel nutzten rein gar nichts. In den Mund wollte ich die Angelegenheit nicht nehmen und sie einfach durchzuschneiden, hätte ich als weitere Niederlage empfunden. Da muss es doch was geben. Etwas Dünnes, Spitzes vielleicht? Hm. Jo, eine Nadel!
Vorm Regal zuckte meine Hand kurz in Richtung Stecknadel, wurde dann aber von weiter oben zurückbeordert, nachdem vor meinem inneren Auge Bilder von abgebrochenen Stecknadeln durchgelaufen waren, die sich mit beiden Hälften in unterschiedliche Teile meiner Hand bohrten und sie in eine blutige Horrorfilmhand verwandelten.
Müssten da in dem Kästchen nicht die Stick- und Nähsachen sein? Treffer! Und da waren auch schon die Nähnadeln. Meine Geheimwaffen. Meine Retter. Ich muss zugeben, ich gab ihnen schon Kosenamen, bevor sie ihren Job erledigt hatten.

Zu Recht, wie sich nur etwa eine Minute später herausstellte. In Nullkommaeinbisschen war das erste Schnürgeschwür geöffnet. Muss der Chef unter den Knoten gewesen sein, denn den Rest verließ nach diesem Schlag die Motivation und alles war plötzlich ganz einfach.

Moral von der Geschicht?

Site Scraping

Ich liebe diese Fachneologismen. “Site Scraping” ist der jüngste Vertreter dieser Art, über den ich eben gestolpert bin.
Na, was könnte sich hinter diesem Begriff verbergen? ;-)
“Site” ist uns wohl allen klar, wenn man erfährt, dass es sich natürlich um dasselbe Wort “Site” wie in “Website” handelt, ursprünglich also englisch für “Platz”, “Ort”.
To scrape bedeutet im Englischen ja ungefähr soviel wie “kratzen”, “schaben”.
Wie jetzt – eine Website kratzen? An einer Website kratzen? Gut, im Deutschen würde die nächstpassendste Übersetzung wohl eher lauten “eine Website (nach etwas) abgrasen” oder “etwas von einer Website abschaben”.
Und was wird hier abgeschabt?
Inhalte. Und zwar mit dem Gedanken, diese fremden Inhalte in einen RSS Feed (etwa “Strom von Daten, die in einem bestimmten Format abgelegt und geordnet sind”) zu verwandeln.
Englischverstehende Mitlesende mögen sich flink diesen Artikel zu Gemüte führen, um im Bilde zu sein, was es mit Site Scraping auf sich hat.

Zu dem Thema gerade noch gefunden: Espresso

Mir Luft machen / Test: Textdarstellung bei PC und Mac

Ich arbeite zur Zeit für einen Kunden, der noch nicht allzu viel Erfahrung mit Internet und Websites im Allgemeinen und Flashwebsites im Speziellen hat.
Das wäre an sich auch nicht weiter schlimm, wenn von vornherein eine Sache allseitig (sprich: auf Seiten des Kunden) bekannt gewesen wäre: Textdarstellung in Flash ist problematisch!

Dass bei einigen Dingen im Internet Unterschiede bemerkbar werden, sobald man sie sich auf zwei verschiedenen Rechnern mit verschiedenen Konfigurationen oder Betriebssystemen oder Browserarten oder Browserversionen anschaut, ist überall bekannt. Dachte ich. Man findet es nicht gut, dass es so ist, hat es aber schon lange als unumstößlich akzeptiert und sich damit abgefunden. Dachte ich.

Aber nein. Natürlich gibt es noch Menschen, die erst jüngst den Bleistift und das Radiergummi oder den Pinsel weggelegt haben, um mal über den Rand ihres Studiumstellers hinauszuschauen, und die dann ganz erstaunt auf das Medium Internet stoßen.
Wie groß die Freude ist! Und wie vielfältig die Pläne, wie man das neue Medium für sich nutzen könnte!
Eifrig werden unbekannte Werkzeuge zur Hand genommen und mittels Freehand und Photoshop die Träume in Pixel verwandelt. In Freehand und Photoshop sieht alles aus wie gewünscht, also ab damit zum Flasher.
Wie groß ist das Entsetzen! Wie gemein und unverschämt der Flasher, eine Umsetzung zu liefern, die derart nicht eins zu eins dem Layout entspricht!
Wie, ach, das liegt gar nicht am Flasher? Es gibt Dinge, die gehen gar nicht im Internet? Oder sehen scheisse aus? Oder lassen den Besucher der Website ob der zu ladenden Datenlast ächzen und stöhnen?

Gestern entgleisten mir sämtliche Gesichtszüge, platzten Kragen, stellten sich Nackenhaare auf und schwoll der Hals.
Ich fühlte mich wie Bruce Banner, der sich aufregt und zum Hulk mutiert. Innerlich.
Klingt übertrieben, weil ich hier nicht die ganze Geschichte erzählt habe. Werde ich auch nicht machen. Lediglich ein Mahnmal für mich. Ich zögere noch, in meinen WeBlogkalender eine Funktion für “Schwarze Tage” einzufügen.

*atmet tief durch und fühlt sich eigentlich schon wieder ganz gut*

Damit ich mir zukünftig nicht den Mund fusselig reden muss, sollte ich nochmals auf einen Web-Un-Profi treffen, habe ich  mir heute morgen die Mühe gemacht, auf einem PC und einem Mac eine Flashdatei anzeigen zu lassen, die ein Textfeld mit schwarzer Schrift auf weißem Hintergrund enthält. Die Schriftart bleibt bei allen Tests gleich, es verändern sich lediglich ein paar der in Flash MX zur Verfügung stehenden Textfeldoptionen, wie beispielsweise die Textfeldart.

Den veröffentlichten Film habe ich jeweils einmal auf dem PC im Mozilla 1.6 und einmal auf dem Mac im Safari 1.2.2 anzeigen lassen und geSCREENSHHOTtet.

Fazit:
Die Zeilenabstände werden vom Mac und PC nicht gleich interpretiert; beim Mac wird der Text mit geringerem Zeilenabstand angezeigt, obwohl der für das Textfeld in Flash eingestellte Wert nicht verändert wurde.

Portfolio-CD-Frust

Ein potenzieller Auftraggeber von meinem Kollegen Mark und mir möchte ein paar Arbeitsproben von uns sehen. Und wieder einmal ärgere ich mich, dass ich von den vergangenen – zum Teil leider schon nicht mehr online verfügbaren – Projekten keine Screenshots bzw. Screencapturevideos angefertigt habe.
Das Ostergewinnspiel EASTER-X beispielsweise ist nicht mehr im Netz zu finden. Und gerade das war ein Projekt, in das gern viel Arbeitszeit geflossen ist. *frust*
Das muss anders werden. Werde mir heute mal wieder ein paar Screencapturetools (Tool, das den Computermonitorinhalt nicht nur in einer Einzelbilddatei sichern kann, sondern auch als Video/Bildersequenz) anschauen, um das geeignetste zu finden…

Gedanken zur Site internen Suche

Wenn ein Suchbegriff nicht gefunden werden konnte, wäre es keine schlechte Idee, dem Benutzer eine Liste der letzten X Suchbegriffe anzuzeigen, die Erfolg zeitigten. Nach dem Motto, wenn Du schon nicht das finden kannst, was dich eigentlich interessiert, zeige ich dir was, was vielleicht auch nett ist, oder zumidest etwas, das andere interessiert.
Diese Liste sollte natürlich dann auch anklickbar sein und zu den entsprechenden Suchergebnissseiten führen.
Das würde lediglich voraussetzen, dass jedesmal bei einem Suchtreffer der Suchbegriff und vielleicht noch die Anzahl der Treffer gespeichert wird.
Momentan habe ich es ja so programmiert, dass dem erfolglosen Suchenden eine Liste der letzten 20 gesuchten Begriffe gezeigt werden. Nicht wirklich spannend. Von daher müsste da vielleicht noch was passieren.

Bekommt der Kunde den Sourcecode/die offene Datei?

Ohne akuten Anlass ging mir gerade der Gedanke durch den Kopf, ob ein Kunde durch irgendein Gesetz das Recht darauf hat, den Sourcecode oder die “offenen” Dateien zu erhalten.

Konkret:
Ich erschaffe für den Kunden Herrn Mieselpiesel einen Flashfilm (SWF). Muss ich Hern M. per Gesetz auch die zugehörige FLA zur Verfügung stellen?

Mögliche Antworten auf diese Frage konnte ich durch Recherche im Internet zwar finden, jedoch noch keine, die mir das Gefühl von hundertprozentiger Sicherheit gibt. Da muss ich wohl mal mit einem Fachmann sprechen.

Auch noch offen ist beispielsweise die Frage, ob dieser Aspekt – Herausgabe des Source Codes – in den AGB oder dem speziellen Vertrag mit Herrn M. explizit genannt sein muss, um davor bewahrt zu sein, die Daten herausgeben zu müssen.

Ferner ist unklar, ob es sich bei einer FLA (“offene” Flashdatei) überhaupt um etwas handelt, was mit Source Code über einen Kamm geschoren werden kann, und ob von daher auch die gleichen Gesetzmäßigkeiten gelten.

Hier ein paar Auszüge aus AGB, auf die ich im Internet stieß:

“Software wird dem Kunden im Objekt-Code überlassen. Die Überlassung technischer Programmdokumentationen, insbesondere des Quellcodes, wird nicht geschuldet und ist nicht Bestandteil dieser Überlassung, es sei denn, dies ist ausdrücklich durch die Anwenderdokumentation anders geregelt (Entwicklungstools). Ein Recht zur Einsichtnahme in diese Unterlagen besteht nicht. Der Kunde darf keine Verfahren irgendwelcher Art anwenden, um aus der Binärsoftware Quellprogramme oder Teile davon wiederherzustellen oder um Kenntnisse über Konzeption oder Erstellung der Software zu erlangen.” [Quelle]

“17. Source-Code
Sofern nicht anders vereinbart gehört der Source-Code nicht zum Leistungsumfang. Ist im Einzelfall die Übergabe desselben vereinbart, so ist der Kunde nicht berechtigt, Änderungen oder Erweiterungen an den Arbeitsergebnissen und Software-Produkten herzustellen. Eine Kopie des Source-Codes wird bei entsprechender Vereinbarung bei einem öffentlichen Notar hinterlegt, der verpflichtet ist, diese bei Eintritt bestimmter zu vereinbarender Umstände an den Kunden herauszugeben.”
[Quelle]

“Die Lieferung der Software gemäß Abschnitt 1.3 auf einem Datenträger (Objectcode) und die Lieferung der Unterlagen gemäß Abschnitt 1.4 können separat erfolgen. Eine etwaige Überlassung des Quellcodes (Sourcecode) bedarf in jedem Fall eines gesonderten Lizenzvertrages.” [Quelle]

“Das genannte Nutzungsrecht ist auf den Objektcode des Softwareprogramms beschränkt. Cortal Consors ist nicht verpflichtet, dem Kunde den Quellcode (Source Code) zur Verfügung zu stellen. Dem Kunden ist es untersagt, den Objektcode der Software zurückzuentwickeln (Reengineering), zu reassemblen oder in welcher Weise auch immer zu bearbeiten oder zu ändern. Zur Dekompilierung des Objektcodes ist der Kunde nicht berechtigt, soweit dies zur Herstellung der Interoperabilität mit anderen Programmen notwendig ist, ihm die hierzu erforderlichen Informationen noch nicht zugänglich gemacht worden sind und sich die Dekompilierungsarbeiten auf die Teile des ursprünglichen Programms beschränken.” [Quelle]

“Erhält der Kunde eine kundenspezifische programmierte Software so kann er über diese in dem Sinne frei verfügen als diese auf einem beliebigen System eingesetzt werden kann. Für den Sourcecode gelten die Bestimmungen gemäss dem URG. Der Kunde kann zu Sicherungs- und Archivierungszwecken von der Software eine Kopie erstellen. Eine darüber hinausgehende Verwendung der Kopie oder des Source Code (namentlich die Abgabe an Dritte) ist nicht zulässig. webstyle GmbH pflegt die Software nach der Garantiefrist für Mängelrechte gemäss den individuellen Vereinbarungen und gegen zusätzliche Vergütung. Der Kunde prüft die Software sofort nach der Lieferung bzw. während der vereinbarten Testperiode auf allfällige Mängel. Erklärt der Kunde nicht innert 14 Tagen nach der Implementierung oder Lieferung der Software schriftlich die Ablehnung der Software, gilt sie als genehmigt.” [Quelle]

Beide Parteien sind sich einig, dass Konzepte, Projektplänen, Schulungsunterlagen und programmierte Software die Schutzfähigkeit des Urheberrechts genießen. Wenn nichts anderweitig vermerkt ist, erhält der Kunde bei für ihn erstellter Software das Recht, diese für einen Kunden (sich selbst oder einen Dritten) uneingeschränkt auf beliebig vielen Arbeitsplätzen zu nutzen. Ist der Kunde von informare Händler, der die Software für einen Dritten programmieren läßt, dann erhält der Händler ebenfalls das Recht, diese Software für sich selbst zum Eigengebrauch und zu Wartungszwecken einzusetzen. Ein Recht, die Software an einen weiteren Dritten abzugeben, besteht nur, wenn dies ausdrücklich im Auftrag vermerkt ist.

informare verpflichtet sich, weitere Nutzungsrechte zu einem Preis, der 50% der Auftragssumme nicht übersteigt, an den Händler zu überlassen. Der Kunde kann von informare ein exklusives Nutzungsrecht beantragen. informare verpflichtet sich bei Annahme zu einem Konkurrenzverbot, d.h. zur Nicht-Verbreitung des Produktes an einen Dritten. In der Regel liegt der Preis für ein exklusives Nutzungsrecht bei der dreifachen Auftragssumme. Ebenso kann der Kunde ein allgemeines Nutzungsrecht erwerben. Er kann dann die gekaufte Software zu jedem beliebigen Zweck (z.B. Weiterverkauf an Dritte) einsetzen. In der Regel liegt der Preis für ein allgemeines Nutzungsrecht bei der doppelten Auftragssumme.

Wenn im Angebot nichts anderweitig vermerkt ist und sofern die Rechte Dritter dem nicht widersprechen, verpflichtet sich informare, den Source Code dem Kunden so auszuhändigen, dass ein qualifizierter Mitarbeiter des Kunden nach Einarbeitung den Code selbst verändern und weiterentwickeln kann. informare ist nicht verpflichtet, Mitarbeiter in die Funktionsweise des Source Codes einzuweisen. Der Kunde ist selbst für die Aufbewahrung des Source Codes verantwortlich. informare ist nicht verpflichtet, den Source Code z.B. für eine Weiterentwicklung aufzubewahren. Der Kunde ist verpflichtet, den Source Code so aufzubewahren, dass er Unbefugten nicht zugänglich ist. informare ist bei Software-Updates des Kunden nicht verpflichtet, die für den Kunden erstellte Software anzupassen, selbst dann nicht, wenn diese Software durch ein erforderliches Update unbrauchbar geworden ist. Zum Schutz des Kunden enthält dieser den Source Code. Wünscht der Kunde eine Wartung der Software, so ist dies in einem eigenen Vertrag gesondert zu regeln. informare besitzt alle Rechte im Hinblick auf eine anderweitige Vermarktung der eigenen Leistungen. Die umfassende Übertragung des Urheberrechtes ist aufgrund von $ 29 UrhG nicht möglich.” [Quelle]