Opera-Sicherheitswarnung bei user.css-Bildern

Problem

Wenn man mit user.css eine lokale Bilddatei einbindet (mit url(file://localhost/...), dann zeigt Opera eine Sicherheitswarnung an. Allerdings findet man leider nur die folgende, nicht sehr hilfreiche Meldung in den Sicherheitsinformationen:


Die Website ist nicht sicher
Die Verbindung zu example.com ist nicht sicher. Benutzen Sie sie nicht, um sensible Informationen zu übertragen.
Der Server versuchte Sicherheitsmaßnahmen anzuwenden, was aber fehlschlug.


Lösung

Man kann das Bild auch als "Data URI" einbinden, das sieht in der .css-Datei z. B. folgendermaßen aus:

background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAXCAIAAABxgXNEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QsWEwYq81fvegAAAYFJREFUOMvllD9rwkAYh+8S/0FCGyNxKBgVUiFSQcFRcC/9Bgp+EvMV+g3EwcG5Q4dCB6WLQknpECi1lCaEOpjcIQmYxHAdnBtrKnTob73j4b378byQEAKOFAocL4mIszAMDcOwbRsAwPN8oVCgaTrmXJPJBCHEsizDMAih6XQacy5CiCiKkiQBAFzXDYLAMAxCCITwYBbGmOO4MAxN07Qsy/O87XaLMc5mswezbNsulUoYoRdVRZYFMpkTnl8ul3FY76r6qCjntZrX7wth6KfTG1E0FUWW5YNZMJH4tCxuvX5jmFOWJa4bYFxMJuP0KNXrz7r+4TivjqOb5gbjs1areHERVST5PjfD4XWlMoTwHgCt3b4bDEhkYLRDt6ORP5tRNE01Gle93q8cuux2n3K5h1RqL2iPQ7sIguB53tHcpqgfXYv6r/F4jBCaz+e+7zebzXw+3+l0Yvqo67osy+VyOQgC3/dXq1W0j3t6XCwWmqYBAKrV6s7zmG/8y736H1hf3PjuO/3diSsAAAAASUVORK5CYII=');

Dies ist ein Ersatz für background:url('file://localhost/home/bla/backgrounds/glass_of_wine.png');. Erzeugen kann man die Daten in einer Shell:

printf %s "background:url('data:image/png;base64,"; cat glass_of_wine.png | base64 | tr -d '
'; printf "%s
" "');"

(Für Anfänger: Erst mit ganz kleinen Bilddateien anfangen, 1000 Byte sind schon viel und werden schnell unübersichtlich.)

Weiterer Hinweis

Dieser Trick gilt für das "alte" Opera unter Linux. Was die Windows-/OS-X-Versionen machen, und wie Opera Next (aka "Chropera" / "Chromera" / "Opium") mit user.css umgeht, weiß ich nicht.


Dokument vom 22. November 2013, letzte Änderung am 30. November 2016. Seitenquelltext

Hintergrundbild: Schräge Vorderansicht der Lok 1142.562-9