Zugriffsbeschränkungen

Wer Plugins oder Themes selber schreibt wird sich früher oder später auch Gedanken über die Dateizugriffe machen müssen. Nicht jeder soll von Außen Zugriff auf unsere Dateien haben, wir möchten doch ganz gerne steuern wer welche Datei aufrufen darf.

Meistens ist ein Aufruf a lá http://www.example.com/wp-content/plugins/a-plugin/conection_data.php eher harmlos, da versucht wird das Script auszuführen anstatt es anzuzeigen. Nicht zuletzt bleibt aber jedoch die Möglichkeit via include(_once) und require(_once) das Script auch von entfernten Servern aus einzubinden und auszuführen.
Wie dem auch sei, ein mulmiges Gefühl bleibt immer zurück wenn jeder auf alle möglichen Dateien einfach per Browser oder PHP-Funktion zugreifen kann. Daher ist es bereits jetzt Best Practice seine Scripte und Dateien mit einer Kontrolle vor solch ungewollten Zugriffe zu schützen.

In vielen Plugins sieht man solchen und vergleichbaren Code

<?php 
  if ( ! defined( 'My_PLUGIN_VAR' ) ) 
    die( 'No direct script access allowed' );
?>

In der Plugin-Datei wird eine Konstante definiert (MY_PLUGIN_VAR) und in allen anderen Dateien wird abgefragt ob diese Konstante definiert ist. Ist sie es nicht, wurde womöglich direkt auf diese Datei zugegriffen was unerwünscht ist. Es gibt hier verschiedene Techniken diese Kontrolle durchzuführen.
Und die Plugin-Datei selber will ja auch noch davor geschützt sein direkt aufgerufen zu werden:

<?php 
  if ( ! function_exists( 'add_action' ) ) 
    die( 'No direct script access allowed' );
?>

Falls die Funktion add_action nicht definiert wurde, was darauf schließen lässt das WordPress nicht gestartet wurde, kann man von einem direkten Zugriff auf die Plugin-Datei ausgehen. Auch hier gibt es verschiedene Wege um zu prüfen ob WordPress bereits gestartet wurde oder nicht.

Das ist alles schön und gut, aber auch aufwendig und fehleranfällig. Stellen wir uns mal ein Plugin mit mehreren Unterverzeichnissen und in jedem Unterverzeichnis wiederum mehreren Dateien vor. Arbeitet man alleine an dem Plugin, ist es schon schwer den Überblick zu behalten ob man wirklich jede Datei geschützt hat. Bei einem Projekt an denen mehrere Personen mitarbeiten ist die Gefahr um so größer das einer der Mitarbeiter vergisst einen entsprechenden Schutz einzubauen. Und so wie Murphy es will, ist es ausgerechnet die Datei, mit den größten Schwachstellen die niemand kontrolliert hat.
Hinzu kommt das man mit diesen Techniken unter Umständen nicht jede Datei schützen kann. In JavaScript-Dateien wird es schon schwer mit diesen Techniken einen unerwünschten Zugriff zu verhindern. Spätestens bei CSS-Dateien müsste man gänzlich aufgeben.

Besser wäre es wenn man zentral regeln könnte auf welche Dateien zugegriffen werden darf und welche nicht. Der Apache Webserver bietet uns solch eine Möglichkeit in Form von .htaccess. Dazu benötigen wir im Grunde genommen nur zwei Regeln. Eine die die erlaubten Zugriffe beinhaltet und eine die die unerlaubten Zugriffe beinhaltet.

<FilesMatch "\.(php|xml)$">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "(\.txt|\.htm?l|index\.php)$">
  Order allow,deny
  Allow from all
</FilesMatch>

Im ersten Block verbieten wir sämtliche Zugriffe auf alle PHP- und XML-Dateien. Die Liste kann man noch um weitere Dateitypen erweitern, je nach Bedarf. Da wir aber nicht alle Zugriffe grundsätzlich sperren wollen, heisst ja readme.txt und nicht readme_not.txt, erlauben wir im zweiten Block den Zugriff auf bestimmte Dateitypen (.txt und .htm[l]), sowie auf die index.php. Auch hier kann man je nach Bedarf bestimmte Dateitypen und Dateien hinzufügen bzw. entfernen.
Das Beste an der Sache ist aber, es wirkt sich auch auf alle Unterverzeichnisse aus, wir müssen uns also keine Gedanken darüber machen ob nicht zufällig die eine Datei, die die Schwachstelle im System darstellt, nicht geschützt ist.

Wo viel Licht ist, ist natürlich auch viel Schatten. Denn auf anderen Webservern als den Apache (z.B. lighttpd, IIS, usw.) funktioniert das natürlich nicht. Entweder man legt für jeden Webserver dann entsprechende Konfigurations-Dateien an, sofern möglich, prüft auf die Server-Software und verweigert den Dienst oder nutzt diese Technik nur zusätzlich um auf Nummer sicher zu gehen.


Login-Name des Autoren verschlüsseln

Klaus stört es das der Login-Name des Autors bei den Post-Metadaten im Link erscheint. Das ist jetzt etwas schwurbelig ausgedrückt, für eine genauere Erklärung einfach beim Klaus nachlesen was er meint.

Manchmal bin ich pingelig und mich stört so etwas auch. Logindaten egal welcher Art haben in Links und anderen öffentlich zugänglichen Bereichen einfach nichts zu suchen. Das widerspricht auch der Idee das man neben den Login-Namen auch noch zwei andere Namen in seinem Profil angeben kann und auswählen kann welchen Namen man gerne öffentlich verwenden möchte.

Der Workaround

Um das Problem zu lösen gibt es einen Workaround und eine Möglichkeit mit Filtern zu arbeiten. Zuerst der Workaround. WordPress bietet nämlich die Möglichkeit für jeden Autoren eine eigene Autoren-Seite anzulegen. Dieses Template wird zuerst gezogen bevor das allgemeine Template für alle anderen Autoren verwendet wird. Anders ausgedrückt: Existiert für den Autor X ein spezielles Template, wird dieses verwendet. Existiert kein solches Template, dann wird das allgemeine Template verwendet.
Dabei sucht WordPress in folgender Reihenfolge nach einem passenden Template:

  1. author-{autor-name}.php
  2. author-{autor-ID}.php
  3. author.php

Ist der Login-Name des Autoren z.B. “Klaus” und existiert ein Template author-klaus.php, wird zuerst dieses Template verwendet. Dies hilft uns in diesem Fall jedoch nicht weiter, da weiterhin der Login-Name verwendet wird.
Jedoch kann man auch die ID des Autoren verwenden. Existiert ein Template author-12.php und hat der Autor “Klaus” die ID 12, dann wird dieses Template verwendet. Ändert noch nichts daran das im Link immer noch der Login-Name erscheint.
Um dies zu ändern, greift man in das Template ein in dem die Funktion get_author_posts_url() verwendet wird. Das ist von Theme zu Theme leider immer etwas unterschiedlich, je nach dem wo die Metadaten zum Post ausgegeben werden. Diesen Funktionsaufruf ersetzt man nun mit diesem Monster:

str_replace(
  get_the_author_meta( 'user_nicename' ),
  get_the_author_meta( 'ID' ),
  get_author_posts_url( get_the_author_meta( 'ID' ) )
)

Damit ersetzt man den Login-Namen (user_nicename) durch die ID des Autoren. Nun benötigt man noch ein Template author-xy.php wobei xy die jeweilige ID des Autoren ist.

Das ganze ist ein Workaround der nur sehr begrenzt einsatzfähig ist. Man muss jedes mal am Theme rumfummeln, die ganze Sache ist nicht wirklich übersichtlich und am Ende benötigt man auch noch für jeden Autoren ein eigenes Template. Eignet sich also normalerweise nur für Blogs in denen es 1-2 Autoren gibt und die eher selten ihr Theme wechseln.


PHP-Daten in JavaScript einschleusen

Nein, dies wird kein Hacker-Artikel wie man mit PHP und JavaScript Webseiten klein bekommt. Vielmehr geht es mir darum, wie man Daten von PHP zu einem JavaScript übertragen kann. Am Anfang solcher Artikel steht meistens die Frage wozu das gut sein soll. Die Antwort ist zumindest im Fall von WordPress relativ einfach: Um Daten aus WordPress in ein JavaScript (JS) zu bekommen. Ob das nun der Benutzername eines Besuchers ist der irgendwo dynamisch eingefügt werden soll oder Texte die Übersetzt werden müssen. Es gibt häufig Situationen wo man die im folgenden beschrieben Techniken ganz gut gebrauchen kann. Ich selber stand z.B. vor dem Problem das ich mit jQuery ein Akkordeon umsetzen musste und dieses einen Button hatte mit dem sich alle Felder öffnen bzw. schließen ließen. Nun fügte das jQuery-Script je nach Zustand der Felder ein “Öffne alle” bzw. “Schließe alle” an eine bestimmte Stelle ein. Da ich etwas faul bin, habe ich beide Zeichenketten direkt im JS abgelegt, was zur Folge hatte das man diese nicht mehr über die Funktionen zur Lokalisation übersetzen konnte. Also musste ein Weg her wie ich erst die Zeichenketten in PHP mittels gettext übersetzen und dann in das JS einfügen konnte.

Der folgende Artikel wird etwas länger, deshalb habe ich ihn auf mehrere Seiten aufgeteilt. Diejenigen die sich mit WordPress auskennen, können den Artikel quer lesen da ich auch Grundlagen beschreibe. Interessante Sachen werden dann auf den letzten Seiten zu lesen sein. Diejenigen die sich nicht so gut mit WordPress auskennen, sollten zumindest die Grundlagen von WordPress und guter Programmierung beherrschen. Ich werde nicht jedes mal darauf hinweisen das man normalerweise definitiv nicht echo $_GET['blah']; schreibt, sondern alles auf seine Richtigkeit und Gültigkeit in prüft. Dann mal los…

Inhalt

  1. Die Vorraussetzungen
  2. Eleganter mit GET
  3. JavaScript mal ganz objektiv
  4. Mein Freund Jason
  5. Da gibt es doch bestimmt eine App für…?
  6. DIY – Jsonifice
  7. Und Action!
  8. Letzte Anmerkungen

Umsonst arbeiten?

In meinem letzten Artikel hatte ich mich ja ein wenig über einen Text von Daniela Warndorf ausgelassen. Dabei geht es um die Frage wie man mit dem Problem von unbezahlter Arbeit umgehen soll. Genau genommen geht es um kostenlose Probearbeiten, die angeblich hauptsächlich nur bei Textern vorkommen. Zitat “In kaum einer anderen Branche wird mit einer solchen Selbstverständlichkeit nach kostenlosen Probearbeiten verlangt.

Blick über den Tellerrand

Für mich ist das keine provokante These mehr, sondern ignorieren der Realität. Schauen wir uns doch einfach mal ein paar Berufe an in denen es die reine Selbstverständlichkeit ist das man “kostenlos” arbeitet.
Da hätten wir zum Beispiel die Architekten. Bei größeren Projekten werden gerne so genannte “Wettbewerbe” ausgeschrieben. Um an den Wettbewerb teilnehmen zu dürfen, müssen die Architekten einen kompletten Entwurf inkl. Modell abliefern. In seltenen Fällen bekommen die zweit- und drittplatzierten noch ein kleines Honorar für ihre Arbeit. Alle anderen hingegen gehen leer aus. Das sind einige hundert Arbeitsstunden die Architekten unbezahlt leisten um an einen Auftrag zu kommen. Und dies vollkommen selbstverständlich und ohne großes Murren.
Bleiben wir in der Baubranche, denn es geht auch eine Nummer kleiner. In der Baubranche werden Aufträge normalerweise ausgeschrieben. Es gibt ein Leistungsverzeichnis das der Bewerber mit Preisen auszufüllen hat. Derjenige der die entsprechende Eignung hat und den günstigsten Preis abliefert bekommt den Zuschlag. Alle anderen gehen leer aus. Die Abgabe eines Angebotes wird in keinster Weise vergütet. Dabei ist so ein Leistungsverzeichnis je nach Größe des Projektes zwischen 10 und mehreren tausend Seiten stark. Selbst wenn es nur wenige Positionen umfasst, verbringt man als Unternehmer etliche Stunden damit Preise zu kalkulieren, Preise für Materialen anzufordern und Angebote zu schreiben. Im Laufe eines Jahres kommen so auch etliche hunderte Stunden zusammen die in keinster Weise bezahlt werden.
Aber natürlich gibt es auch Arbeiten die für uns mittlerweile so selbstverständlich sind, dass wir sie schon gar nicht mehr als solche erkennen. Ich kenne keine Metzgerei in der halbe Schweine oder ganze Kühe auf dem Tresen landen und wo ich mir das Kotelette selber raus schneiden muss. Auch im Supermarkt stehen keine Kühe an denen ich mir die Milch selber zapfen muss. Metzger und Supermarkt müssen Waren einkaufen, sie lagern, transportieren, in Regale und Theken einräumen und wenn sie nicht verkauft werden, wieder ausräumen und entsorgen. Dabei ist der Arbeitsaufwand manchmal noch nicht einmal das große Problem, sondern der Wareneinsatz. Denn für nicht verkaufte Ware bekommen weder Metzger noch Supermarkt von irgendjemanden Geld. Das sind Verluste die der Unternehmer selber zu tragen hat. So etwas fällt unter den Begriff Unternehmerisches Risiko.

Kostenlos ist nicht umsonst

So gesehen sind digitale Unternehmer, wie z.B. Texter, wirklich gut dran. Denn sie investieren lediglich etwas Zeit und haben so gut wie keinen Wareneinsatz. Die Verluste sind also überschaubar. Verluste, sei es durch unverkäufliche Ware oder nicht bezahlte Arbeit, gehören zum Geschäftsalltag unabwendbar hinzu. Das ist nun einmal das Risiko das man als Unternehmer eingeht und das den selbstständigen Unternehmer vom Angestellten, der normalerweise seine komplette Zeit bezahlt bekommt, unterscheidet. Die Frage kann also nicht sein wie man unbezahlte Arbeit vermeidet, sondern wie man Risiken, die das Geschäftsleben mit sich bringt, kalkuliert und wie man mit ihnen umgeht.
Probearbeiten und Referenzen sind Teil des Grundkapitals. Eine Tatsache die viele Jungunternehmer entweder gar nicht begreifen oder schlichtweg ignorieren. So wie man ein Startkapital in Form von Finanzen und eine Grundausstattung in Form von Hard- und Software, Büroausstattung, usw. benötigt, benötigt man ebenso Schaustücke die man dem Kunden präsentieren kann.
Im besten Fall sind es Referenzen die man vorzeigen kann. Denn bei Referenzen handelt es sich in der Regel um Projekte für die man bereits Geld bekommen hat, die Schaustücke sind also bereits bezahlt. Allerdings stellt sich hier die Frage wie man an Referenzen kommen soll. Denn auch eine Referenz ist ja schließlich ein Auftrag der erst einmal erteilt und durchgeführt werden will.
Wenn man also (noch) keine Referenzen hat, dann muss man entweder Zeit in Schaustücke investieren oder mit (kostenlosen) Probearbeiten den Kunden überzeugen.

Investition in die Zukunft

Für Programmierer wäre es z.B. eine Möglichkeit Open Source Software zu veröffentlichen. Texter hätten z.B. die Möglichkeit über einen Blog ihre Fähigkeiten und Talente zu präsentieren. Webdesigner können z.B. für gemeinnützige Vereine Webseiten erstellen, usw. Dies alles ist zwar erst einmal “unbezahlte” Arbeit, jedoch sollte man es als Investition betrachten die sich vielleicht erst viele Jahre später auszahlt. Denn im Grunde genommen geht es doch darum sich einen Namen zu machen und sich zu präsentieren. Da ist es wahrscheinlich sehr suboptimal wenn die Open Source Software “Pimpernelli – Das lustige Puffspiel” heißt, der Blog nur so vor bissigen und sarkastischen Beiträgen strotzt, die “gemeinnützige Organisation” für die man Webseiten erstellt sich als Webseite mit sehr vielen nackten Frauenkörpern heraus stellt.
Hier bewahrheitet sich der Grundsatz privates und geschäftliches tunlichst voneinander zu trennen. Es gibt sicherlich den einen oder anderen bei dem der Mix aus Privat und Geschäftlich funktioniert weil er privat genauso professionell ist wie geschäftlich. Wer aber gerne mal seine Meinung sagen möchte, sollte beides trennen. Denn im Geschäftsleben hat die eigene Meinung nur sehr geringen Stellenwert.

Hat man erst einmal ordentlich Zeit in Referenzen und andere Arbeiten investiert, hat man sich also einen Namen gemacht und kann was vorzeigen, kann man langsam mal dazu übergehen etwas zu verlangen. Wenn dem Kunden die bisherigen Referenzen nicht ausreichen und er eine speziell auf sich zugeschnittene Probearbeit sehen will, so sollte man sich diese Arbeit auch bezahlen lassen. Dabei sollte man aber nicht zu gierig sein, auch hier geht man ein gewisses unternehmerisches Risiko ein. Zu hohe Preise verscheuchen die potentiellen Kunden, zu niedrige Preise erhöhen die Verluste.
Ein Kostenvoranschlag für eine Reparatur kostet in einer Autowerkstatt oft so um die 30 Euro. Damit deckt die Werkstatt aber in den seltensten Fällen alle tatsächlich angefallenen Kosten. Diese liegen meistens um das zwei- bis dreifache darüber. Den Fehlbetrag holen sich die Werkstätten jedoch bei einem späteren Reparaturauftrag über die Preise für die einzelnen Positionen wieder rein. Das der Kostenvoranschlag, respektive die bezahlte Probearbeit, einen Nebeneffekt hat, ist mehr gewollt als Zufall. Denn welcher Kunde holt sich 5, 10 oder mehr Kostenvoranschläge rein wenn er die alle bezahlen muss? Und zudem setzt hier ein psychologischer Effekt ein. Wenn der Kunde eh schon etwas gezahlt hat, dann ist er eher bereit den Auftrag zu vergeben wenn er die Kosten mit dem Auftrag verrechnet bekommt. So hat der Kunde zumindest nicht den Eindruck er hätte Geld verschenkt.

Die falsche Kundschaft

Ich sehe schon wie viele sich jetzt sagen “Aber meine Kunden würden niemals für eine Probearbeit bezahlen…“. Gut, dann sage ich: Du hast die falschen Kunden.
Kunden die bereits an diesen Punkt zu geizig sind die Probearbeit zu bezahlen, machen oft auch bei der Endabrechnung Schwierigkeiten. Man tut sich demnach also kein Gefallen damit monatelang für potentielle Kunden Arbeiten zu erstellen die dann am Ende ohnehin nicht in einem Auftrag enden oder, wenn es doch zu einem Auftrag kommt, endlose Diskussionen über Preise und Leistungen nach sich ziehen. Denn auch der Kampf um das wohlverdiente Geld ist kostenlose Arbeit die nicht bezahlt wird!

Gefragt ist also ein gutes Risikomanagement. Man muss sich bei jeden Kunden aufs Neue fragen wie viel Zeit und damit Geld man in diesen Kunden investieren will. Und wie hoch man das Risiko einschätzt das diese Zeit und damit das Geld verloren gehen kann.
Ich habe oft genug für Kunden stundenlang umsonst gearbeitet, erst vor kurzem war es eine Position von ungefähr 20 Stunden. Dabei hatte ich die ersten 10 Stunden selber zu verschulden weil ich die Situation falsch eingeschätzt hatte. Die Frage ob ich weiterhin Zeit (und Geld) in diesen Kunden investieren will, beantwortete ich für mich mit Ja. Denn zum einen wollte ich den Kunden halten, zum anderen sah ich keine größeren Probleme für zukünftige Aufträge und Zusammenarbeit. Diese 20 Stunden die ich bisher “umsonst” gearbeitet habe, sehe ich also nicht als Verlust, sondern als Investition an. Ich konnte dem Kunden so eine Arbeit präsentieren die ihn qualitativ überzeugte und ihn durch diesen “kostenlosen” Einsatz von der Leistungsbereitschaft überzeugen. Es ist also eine Investition die man nicht in Heller und Pfennig aufrechnen kann, genauso wenig wie man einen guten Ruf in Euro und Cent umrechnen kann.
Natürlich besteht ein gewisses Risiko das keine weiteren Aufträge kommen oder das sich die spätere Zusammenarbeit sehr schwierig gestaltet. Aber dieses Risiko habe ich als sehr niedrig eingeschätzt.
Es gab aber natürlich auch schon die krassen Gegensätze. Kunden die ich bei den kleinsten Schwierigkeiten habe fallen lassen oder die ich erst gar nicht angenommen habe. Dies ist eine Sache von Bauchgefühl und Erfahrung. Denn aus der wirtschaftlichen Sicht heraus muss man es so sehen: Eine Probearbeit ist eine überschaubare Sache. Ich weiß ich werde x Stunden, oder umgerechnet y Euro, in die Probearbeit investieren. Das Verlustrisiko steht im schlimmsten Fall bei 50%. Entweder man bekommt den Auftrag oder nicht. Dieses Risiko kann man oft genug noch weiter minimieren indem man sich z.B. die Arbeit teilweise bezahlen lässt. Hierdurch steigen die Chancen den Auftrag zu bekommen und das Verlustrisiko sinkt.
Ärger bei der Abrechnung oder bei der Durchführung ist ein unkalkulierbares Risiko. Weder weiß man welche Leistungen noch zusätzlich kommen (meistens sind es dann Sachen die der Kunde in einem Nebensatz nachts um 3 am Telefon erwähnt hat und bei denen der Kunde sich 100%ig sicher ist das dies von Anfang an vereinbart war), man weiß nicht ob und wann das Geld kommt und ob man um die Bezahlung der Position x kämpfen muss. Und vor allem weiß man nicht ob nach so einem Theater noch Folgeaufträge kommen oder ob man überhaupt noch mal Lust hat für diesen Kunden zu arbeiten. Schwierige Kunden sind für mich immer ein 80-100%iges Verlustrisiko. Denn die Zeit die man sich mit ihnen rum ärgert bezahlt einen niemand.

Fazit

Probearbeiten und Referenzen gehören zum Geschäftsleben dazu und man kommt um sie nicht herum. Sie sind aber keine Plage die unvorhergesehen über einen herein bricht, sondern in erster Linie eine Investition mit einem gewissen Verlustrisiko. Und selbst dieses Verlustrisiko ist mit etwas Erfahrung überschau- und berechenbar.
Wer ständig mit kostenlosen Probearbeiten konfrontiert wird und häufiger keine Aufträge daraus generieren kann, muss die Verluste auf seine Preise umlegen. Das macht der Metzger genauso wie der Architekt. Nicht umsonst sind die Besten oft die teuersten. Denn sie haben bereits ihr Lehrgeld bezahlt und fahren jetzt die Zinsen ein.
Wenn man jedoch ständig nur zur Probe arbeitet und durch Umlage die Preise in exorbitante Höhe steigen, dann liegt das aller Wahrscheinlichkeit nicht am System, sondern an anderen Faktor. In solch einem Fall sollte man sich fragen ob z.B. die eigene Qualität stimmt oder ob man vielleicht in einem Marktsegment tätig ist das vollkommen überlaufen ist. Unter Umständen hat man aber auch eine Nische besetzt die nicht so ertragreich ist wie man sich erhofft hat.


Argumentiere niemals mit schlechten Beispielen

Durch meinen Feedreader bin ich über diesen Text von Daniela Warndorf gestolpert. Zuerst dachte ich es sei wieder einer dieser Jammertexte den man von Webworkern in regelmäßigen Abständen zu lesen bekommt. Erst im letzten Absatz las ich das Daniela Warndorf eine Texterin ist und demnach nicht zwangsweise zu der Gruppe der Webworker zu zählen ist. Die beschriebene Problematik trifft aber auf viele Bereiche und Berufsgruppen zu.

Im Grunde genommen ist die Grundaussage des Textes, dass man nicht für umsonst arbeiten könne, richtig. Ich denke und hoffe das dies auch niemand macht. Auf der anderen Seite sind Probearbeiten und Referenzen wirklich nichts mit dem man niemals im Berufsleben hätte rechnen können. Dies trifft nicht nur auf Kreative und Webworker zu, sondern auf so ziemlich jeden herstellenden Beruf.
Nehmen wir einmal den Metzger aus Daniela Warndorfs ersten Beispiel. Probieren geht über studieren, dass wussten Metzger und Wurstfachverkaufskräfte schon bevor es Internet gab. Wer kennt es nicht, dass kleine Stückchen Fleischwurst das über die Theke gereicht wird. Oder die kleinen Probierhappen, die oft in jeder guten Metzgerei auf dem Tresen ausliegen. Warndorfs Beispiel ist völlig daneben gegriffen. Zum einen gibt es Proben beim Metzger, zum andern ist ein Steak nicht mit einem Text oder einem anderen digitalen Produkt vergleichbar. Schneidet man von einem Steak ein Stück ab damit der Kunde es probieren kann, ist das Steak irgendwann weg. Einen Text oder ein digitales Produkt wie z.B. ein Stück PHP-Code kann man unendlich oft kopieren und verteilen ohne das seine Qualität leidet oder das es weniger wird. Der Vergleich Texter mit Metzger hinkt also nicht nur, er ist schlichtweg falsch.

Ihr nächstes Beispiel ist da schon etwas besser. Die “kostenlose” Reparatur im Autohaus. Sicherlich erhofft sich der eine oder andere Kunde das quasi als Serviceleistung kleinere Mängel gleich mit abgestellt werden. Die Werkstätten haben jedoch schon vor langer Zeit die Situation erkannt und entsprechend gehandelt. Kostenvoranschläge nur gegen Bezahlung und jede Reparatur wird in Rechnung gestellt. Es tat zwar weh als ich mal für den Austausch einer Sicherung im Wert von 75 Cent 20 Euro bezahlt habe, es war aber gerechtfertigt. Denn bezahlt habe ich nicht die Sicherung, die gab es gratis. Bezahlt habe ich den Zeitaufwand der Werkstatt.

Warndorfs letztes Beispiel ist leider wieder völlig daneben. Denn auch die Milch verbraucht sich, genauso wie ein Steak. Und tatsächlich ist es, juristisch gesehen, das Risiko des Supermarktes die Waren zur Selbstbedienung im Regal anzubieten. Alternativ könnten sie, wie im guten alten Tante Emma-Laden, die Waren in einem Lager deponieren und dem Kunden nur die Waren aushändigen, die er kaufen möchte. Es ist also, wie man als Programmierer sagen würde, ein Designfehler des Supermarktes.

Warenproben, Probearbeiten und Referenzen gehören zum Berufsalltag genauso dazu wie Kunden die Aufträge geben. Ich denke Daniela Warndorf wird sicherlich auch schon mal eine Probefahrt mit dem Auto gemacht haben das sie kaufen wollte. Ich gehe aber nicht davon aus das sie dem Verkäufer deswegen gleich mal 30 Euro für Sprit und Abnutzung des Autos gezahlt hat. Oder? Und wer kennt sie nicht, Kunden die sich im Fachmarkt beraten lassen und dann billig im Internet bestellen?
Natürlich will man ein Produkt erst einmal testen bevor man es kauft. Kann man dies nicht, weil es sich z.B. um ein Steak oder ein Liter Milch handelt, will man als Kunde Referenzen sehen. Also z.B. andere Kunden die mit diesen Produkt zufrieden waren.

Wie eingangs erwähnt, höre oder lese ich immer wieder vor allem von Selbstständigen das sie vollends darüber frustriert sind wenn sie “kostenlos” arbeiten sollen. Dabei drängt sich der Ausspruch “Wasser predigen – Wein saufen” jedes mal aufs neue auf. Denn auf der einen Seite würden sie selber niemals etwas kaufen was sie nicht ausgiebig getestet haben oder was zumindest über ausreichend gute Referenzen verfügt. Auf der anderen Seite wollen sie ihre Produkte weder zum Testen noch irgendwelche Referenzen anbieten. Aus diesen Frust heraus werden dann haarsträubende Beispiele konstruiert die nicht einmal ansatzweise das Problem darstellen. Geschweige denn mal Lösungsansätze wie man mit dem Problem “kostenlose Arbeit” umgehen soll. Das dieses Problem immer wieder auftaucht, kann leider nicht abgestritten werden.

Auf das Problem “kostenlose Arbeiten” gehe ich in einen anderen Artikel mal näher ein, es würde ansonsten den Rahmen sprengen. Es ist jedoch immer wieder schade anzusehen wie hilflos, verzweifelt und unkreativ angeblich selbstständige mit solchen Problemstellungen umgehen. Das da meist nur Jammern übrig bleibt, ist mehr als bedauerlich.