Gerade kam ich wieder in den Genuß eines tollen Firefox-Features, was nicht kompatibel zu Kontaktformularen ist.
Zurück zum Anfang der Geschichte. Bei einem wichtigen Anliegen, gab es mal wieder keine andere Möglichkeit als ein Kontaktformular. Also brav mein Anliegen formuliert und abgesendet. Die Bestätigungsseite kam und zum Weitersurfen habe ich natürlich weitere Tabs im Firefox verwendet. Eine Minute später kam auch die Bestätigung per E-Mail, dass das Kontaktformular erfolgreich abgesendet wurde und demnächst bearbeitet wird.
Firefox beendet und beim erneuten Start gemerkt, dass alle 10 Tabs wiederhergestellt wurden. Gut, habe ich so eingestellt, weil beide Varianten nerven. Entweder alle Tabs weg oder alle 10 Tabs wiederhergestellt. Vielleicht wäre ein Flag praktisch, dass man den wichtigen Tabs mit auf den Weg gibt. Nachdem ich mich durch die ersten Tabs mit CMD+W gekämpft habe, stelle ich fest, dass mir die frohe Botschaft: Ihre Nachricht wurde versendet entgegenlächelt. Eine Minute später ist auch die E-Mail im Posteingang.
Unschön, vorallem hoffe ich, dass die Bearbeitung nicht im Round-Robin-Verfahren erledigt wird und ich auch zwei Antworten erhalte.
Wer hat Schuld? Im Zweifel der Anwender, ist aber zu einfach. Firefox, naja, warum muss der auch die POST-Parameter abspeichern. Reicht es nicht, GET-Anfragen erneut zu senden? Nach der Spezfikation verändern POST-Parameter den Status auf dem Server. Von daher ist das unglaublich ungeschickt. Man stelle sich eine Anwendung vor, die Items nicht per Id, sondern per Index löscht. Dreimal im Firefox wiederhergestellt, dreimal das erste Item gelöscht. Aua – verdammt unschön.
Und was macht die Web-Anwendung? Sie hätte ein Token mitgeben können. Somit wäre zumindest das mehrfache Versenden unterbunden. Ist im Zusammenhang mit POST immer eine gute Idee. Gerade bei Abwehr von Cross Site Request Forgery (CSRF) sollte man sich richtiges Token-Handling mal ansehen.
Also haben wir nicht einen Übeltäter, sondern gleich drei:
- Der Benutzer, der seine Tabs nicht ordnungsgemäß schließt
- Firefox, der POST-Parameter erneut sendet
- Die Web-Anwendung, die nicht genügend Überprüfungen hat
Wie behebt man das Problem am besten?
In dem man Kontaktadressen anstatt Formularen anbietet. Bitte liebe Webseiten-Auftraggeber: kein Kontaktformular, die sind die Pest schlecht hin. Neben meinem Problem sind das herrliche Einfallstore für Spam aller Art. Gibt man eine E-Mail-Adresse an, gibt es genügend fähige Filter, um Spam recht zuverlässig auszusortieren. Wie wertet man aber das Kontaktformular aus? Ein schönes Skript kann ein paar Tausend Einträge hinterlassen. Wie Filtern? Wie Gutes vom Schlechten trennen? Ah, wir sind bei Captchas. Toll, sehr benutzerfreundlich. Achso, kaum lesbar, na dann runter mit dem Störungen. Oh, jetzt gibt es doch wieder Spam-Attacken, weil es sich um eine wichtige Webseite handelt oder die verwendete Library schon gut genug von Spammern und deren OCR trainiert wurde. Es ist die Pest. Warum sollte man sich diese an den Hals holen, wenn man für die Bereiche E-Mail-Adressen hinterlegen kann. 99% der User kommen damit super klar (herrlich pauschalisiert). Man hat diese in seiner Mail-History und eine abgelaufene Session innerhalb eines Login-Bereiches führt nicht dazu, dass eine lange Kontaktabfrage einfach mal so verloren geht.
Ja, es gibt Bereiche wo es notwendig ist. Wo es aber nicht sein muss, gebt dem Nutzer zumindest die Wahl.
Amen.