Wo wir sind, ist vorne, Folge 48, Policy, HT-Access und HTTP, XSS, CSP, ole ole.
Herzlich willkommen bei Wo wir sind, ist vorne.
Frontend-Fakten-Frotzelein.
Der Late-Night-Frontend-Talkshow rund um Webdesign und Entwicklung.
Es reden sich um Head und Kragen, HTML-Fundamentalist Moritz Gießmann und JavaScript-Jongleur Konstantin Groß.
Die Messen hat sich in der Kreativität ja ganz schön hochgelegt heute.
Es ist, was? Um Gottes Willen.
Ich mag ja Anspielungen, hatten wir ja schon öfter, hatten wir ja mal eine Folge, die nach diesem Fanta 4 Song benannt ist.
Die Älteren unter euch werden sich erinnern und die Jüngeren.
An die Folge.
Genau, an die Folge und die ganz, und die, die kurz vorm Grab stehen, die erinnern sich vielleicht sogar auch an den Song, als der rauskam.
Ich erwarte es dann, das war relativ am Anfang.
Achso, welche Folge?
Das ist irgendwie Editor, irgendwas.
Irgendwas mit Editor.
Doch gar nicht so.
So irgendwo in der Mitte, oder?
Sollen wir es auflösen? Also für die, die es nicht wissen.
Nur 24. Ah, das war genau die Hälfte.
Genau vor der Hälfte.
Wir haben nämlich heute Folge 48 in Kalenderwoche 48.
Was? Verrückt.
Verrückt, ne?
Also es ist ja, also und dann auch noch.
Und das war auch noch, und nach 24 Folgen noch mal eine Anspielung auf diesen Song.
Zufall.
Das heißt, das müssen wir jetzt alle 24 Folgen durchziehen.
Kompletter Zufall. Also es ist wirklich, ich habe nicht reingeschaut.
Ich wusste nur, dass wir mal eine Folge so genannt haben.
Zufall.
Also, es geht um den Song MFG von den Fantastischen Vier.
Hört euch den mal an.
Hört euch den einfach mal an und dann wisst ihr, wo dieser Quatsch herkommt.
Ja, so.
Und Weihnachtsintro gab es.
Und Weihnachtsintro.
Ach, das hat mir große Freude gemacht gerade.
Ja, ich freue mich auch immer.
Alle zwölf Monate.
Alle zwölf Monate und alle 24 Folgen.
Achso, ja.
Stimmt.
Ja, ja.
Passt, ne?
Theoretisch, theoretisch.
Die Zahl 48 ist halt magisch.
Wir machen halt, wir machen einfach längere Pausen dazwischen.
Nicht so wie andere Podcasts, wo ich jetzt vor kurzem gemerkt habe, oh, da habe ich schon länger keine Folge mehr gehört.
Wie viele Folgen gibt es denn seitdem?
Oh.
Und dann sind das halt immer so vier Stunden Folgen.
Habe ich wohl schon länger nicht mehr gehört, aber die veröffentlichen auch nur alle zwei Wochen, aber die lassen halt keine Woche aus.
Die machen das dann halt immer.
Gut, ja.
Das passiert bei uns halt ab und zu.
Gut, die leben mittlerweile, glaube ich, auch so halb davon.
Na gut, dann kann man das.
Von daher.
Ah, Mensch, ich hätte mal früher mein AMMO-Interface rumdrehen sollen.
Es ist jetzt, also jetzt darf ich es nicht mehr anfassen.
Wir haben vorhin schon kurze technische Probleme gehabt, aber es klingt gerade so schön radiomäßig bei mir.
Also auf meinen eigenen Kopfhörern klingt es gerade super.
Sehr schön.
Okay, so, haben wir das Zettel weg.
Ähm, Bier, glaube ich, ist der nächste Punkt.
Eine große Flasche.
Oh, das klang auch schon sehr mächtig.
0,5.
Okay, was ist das?
Aber es ist ein Radler.
Es ist ein Schwarzwald-Michel-Radler.
Schwarzwald, oh ja.
Der fährt auf dem Fahrrad.
Da kannst du jetzt, hier siehst du auch wirklich, ne, hier siehst du die Druckerpunkte auf meiner neuen Webcam.
Ja, die habe ich jetzt, ja, fast.
Fast, so groß habe ich das Bild gerade bei mir nicht.
Ich trinke heute ein Neumarkter-Lammsbräu-Weiße.
Ich glaube, das hatte ich schon mal.
Mhm, ich habe das auch schon mal, ja.
Helles Bio-Hefe-Weißbier.
So, und ich würde es jetzt mal, wer zuerst, du, ich?
Ja, ist egal, mach du.
Oh ja.
Ich glaube, das kommt auf die Liste der guten Biere.
Ja, genau, das haben wir im Stream schon mal besprochen.
Das hat jemand gefragt, wenn ich ein Hörer in ein Pro-Bier-Paket machen kann.
Oh, ein Bier-Pro-Bier-Paket.
Ähm, genau, ein WWSEV-Bier-Paket.
Pro-Bier-Paket.
Stellen wir da mal was zusammen.
Und dann gibt es noch das Anti-Bier-Paket mit Bier, die ganze Bieder, die schwingen.
Mit 0,0 Alkoholfrei.
Das Pro-Bier-Paket und das Anti-Bier.
Genau, diese mexikanischen, oder was du da hattest, was überhaupt nicht dem deutschen Reinheitsgebot entspricht.
Ja, das kommt ja ins Anti-Bier-Paket.
Ja, dann ...
Das muss ich kurz notieren, warte kurz.
Das geht nicht, also so ein schlechtes Wortspiel, das, äh, das muss, das muss irgendwie festgehalten werden.
Und das Anti-Bier-Paket.
Ja, das, das, das, äh, wer weiß, vielleicht wird auch gar nichts draus, aber es ist auf jeden Fall, jetzt ist es mal Ruhe.
Ja, dann, zu wohl.
Äh, stoßen wir an.
Durchs Portal.
So, ich muss es aber erst noch, Achtung, jetzt kommt noch ein bisschen, noch ein bisschen Geräusch-ASMR.
Oh ja.
Achtung, ihr hört schon, es ist alles jetzt ein bisschen anders hier, aber ich trinke heute mal aus dem Glas.
Und wenn man in das Glas rein spricht und das dann direkt so ans Mikrofon hält, dann klingt das so.
Das war's dann mit der Radiostimme.
Ja.
So, Achtung, vielleicht, vielleicht, vielleicht, äh, genießt das ja auch jemand so wie ich.
Ich weiß nicht, ob man da was hört.
Ah ja.
Das dreh ich dann hoch, den Ton.
Das brauchen wir, glaub ich, gar nicht.
Das kann, das kann ruhig so bleiben.
Oh, oh, oh, oh, warte, pass auf, ich schaff's tatsächlich mit einem Mal einzuschenken.
Ohne, dass ich irgendwie noch mal einzuschenken.
Das sieht auch gut aus.
Gutes Verhältnis aus Bier und Schaum.
Oh, das ist ja Perfektion, was ich hier gemacht hab.
Wahnsinn.
Schade, dass wir, dass wir halt jetzt gerade Podcast aufnehmen, ne?
Ist nicht so, dass ich jemals in der Gastronomie gearbeitet habe.
Ich mach ein Beweisfoto und, äh,
Jetzt verschwinden grad die Overlays von Signal nicht.
Ähm, dann sind die halt mit drauf.
Äh, jetzt hast die Augen zu.
Egal.
Müssen wir auch nicht veröffentlichen.
Ist auf jeden Fall, nee, das hab ich perfekt eingeschenkt.
Aber ich glaub, das ist auch ein sehr, sehr dankbares Bier zum Einschenken gewesen.
Hatte ich grad den Eindruck, es hat nämlich wenig geschäumt.
Aber gerade so, dass es das schöne Schaumkron hat, das Glas ist jetzt voll.
Ähm, es ist kein D mehr in der Flasche.
Guck mal, das ist so schön, das kommt einfach so in die Shownotes.
Hm, darüber reden wir nochmal.
Okay.
Hm, mal probieren.
Oh, er ist sehr fruchtig.
Hm, schmeckt fast ein bisschen nach Banane.
Das hab ich bei Weizen öfter.
Diesen, so ein Bananen.
Ich glaub, deswegen ist man auch auf die Idee gekommen, Bananenweizen zu machen, weil sich das ergänzt.
Das verstehe ich ja nicht.
Aber ich trinke das auch nicht gerne.
Also ich mag Weizen generell nicht so.
Also, das darf ja jeder das trinken, was er möchte.
Ähm, aber das muss ich jetzt nicht, das Bananenweizen ist, ist für mich, also verstehe ich genauso wenig wie Kiba.
Das ist, äh, was früher, was früher die Menschen getrunken haben, wenn sie, wenn sie in eine Kneipe gegangen sind, aber noch nicht, kein Alkohol bestellen durften.
Kiba.
Dann hat man so den, den macht man sich selber vor, man hätte einen Cocktail.
Ja, das sieht komisch aus und schmeckt komisch.
Man kriegt eigentlich alles wie ein echter Cocktail.
Und es wird einem schlecht, also es ist wie ein echter Cocktail, genau.
Naja, gut.
Okay.
Dann können wir starten, oder?
Ach Gott, du hast die Retro umgeschichtet, jetzt muss ich ja anfangen.
Ich hab nur einen Punkt gelöscht, ja, weil ich den, weil daraus dann mein, mein Thema heute geworden ist.
Okay, dann können wir ja rüber.
Ich glaube, mein erster Retro-Punkt ist, dass ich diesen Jingle einfach sehr gut finde.
Das ist mir jetzt gerade eben mal wieder aufgefallen, hab ich ganz bewusst zugehört und dachte so, Mensch, wie gut ist denn das eigentlich?
Sehr gut.
Ja, das mag unsere Audio-Verpackung auch sehr.
Ja, das ist ja, hab ich ja schon mal gesagt, wir sind der, wir sind die Flash-Website unter den Podcasts.
Bei uns blinkt's und blitzt's, aber es steckt halt nichts drin.
So, ähm, genau.
Äh, ich fang an mit einem Toot.
Übrigens, hast du, äh, haben wir die Geschichte mit dem Toot, die haben wir erzählt, gell, mit dem, äh, stimmt, ich glaube, das war in der, in der Folge mit dem, mit dem Matthias.
Ja, genau, ja.
Genau, also, äh, falls ihr den noch nicht gehört habt, auf jeden Fall noch anhören, unsere letzte Podcast-Folge mit Matthias Pfefferle über Open Web.
Ähm, und da wurde erzählt, dass, ähm, einer gesagt hat, hey, ich unterstütze Mastodon, ähm, irgendwie regelmäßig mit Geld, wenn ihr es nicht veröffentlichen nennt, sondern Toot.
Und, äh, ja, egal, also ein Toot oder ein, ein, ein Post, äh, von Frank Rieger, vom, äh, Chaos Computer Club, äh, wo, wo ein Zitat irgendwie bei mir resoniert hat, wo ich so dachte, hey, das ist, das ist echt gut.
Und zwar, ähm, also es ging eigentlich so um, ähm, eine Diskussion, es ging eigentlich darum, mit dem Chaos.Social, äh, Mastodon-Server von denen und, ähm, wie da die Regeln sind und, äh, egal.
Und am Ende hat er geschrieben, ähm, die Menschen, die in ihre Freizeit hier reinstecken, äh, die ihre Freizeit hier reinstecken, äh, diejenigen, die entscheiden, wer macht, hat Macht, alle anderen haben eine Meinung.
Das fand ich einfach sehr gut, weil das, das ist wirklich, das ist einfach, das muss man, glaube ich, mal begriffen haben im Leben.
Das ist, glaube ich, so eine Grundregel, finde ich, von ganz vielen Dingen, ist die Leute, die Dinge tun, die haben auch die Gewalt darüber sozusagen, das ist natürlich nicht überall so,
Aber ich finde das eigentlich schön, wenn das, wenn das so ist, wenn jemand, der die Initiative ergreift, der kann dann auch entscheiden und jemand, der nur vom, vom, äh, Spielfeldrand reinbrüllt, ähm, der hat halt nur eine Meinung.
Aber der hat halt, der kann zwar was dazu sagen, aber auf den muss man nicht unbedingt hören, sondern es ist irgendwie, es sind irgendwie die Leute, die es tun, die auf dem Spielfeld stehen.
Jetzt ja nicht mehr, aber.
Ja.
Keine Ahnung, warum ich jetzt am Fußball, ist eigentlich gerade irgendwas, wieso habe ich jetzt am Fußball, ich glaube, ich glaube es, ich weiß auch nicht, wieso ich jetzt da drauf gekommen bin, ja, keine Ahnung.
Gut, das war mein erster Punkt.
Äh, gut, dann geht's bei mir weiter. Ich hab, ähm, wir haben ja hier öfter schon irgendwie ein bisschen uns aufgeregt über Support-Erfahrungen, die wir irgendwo machen mussten und dann irgendwie verdröstet werden und so.
Aber ich möchte heute mal eine, oder eigentlich zwei positive Support-Erfahrungen, äh, äh, mal loswerden.
Und zwar hab ich, ähm, hab ich im Stream ja schon vorgestellt, eine neue Kamera, äh, die jetzt deutlich streamtauglicher ist und ein, ein neues Keyboard und einen neuen Bildschirm.
Und mit der Kamera und dem Bildschirm hab ich so ein bisschen Probleme, da ist irgendwie, bei der Kamerasoftware, wenn ich da bestimmte Einstellungen toggle, dann toggeln die sich nach einer Sekunde wieder zurück und werden nicht gespeichert.
Ähm, ja, und, äh, bei der, bei dem Bildschirm ist das Problem, dass der irgendwie, ähm, wenn der in den Standby fährt oder ich ihn abschalte, dann, dann wird der vom System irgendwie vergessen.
Und wenn ich ihn dann wieder anschalte, dann wird er als neuer Bildschirm erkannt, das heißt, die Fenster, die da drauf waren, wandern auf die Sekundär- beziehungsweise Tertiär-Monitore.
Eie.
Und, äh, ja, dann hab ich bei beiden den Support angeschrieben und bei beiden war die Reaktionszeit absolut schnell.
Das bei, bei, bei der, ähm, äh, bei der Kamera war es irgendwie eine Dreiviertelstunde oder sowas, bis die erste E-Mail zurückkam und bei dem Monitor waren es nur 25 Minuten.
Oh, krass.
Und das ist eine Firma, die sitzt in, also eigentlich, glaub ich, eine mexikanische Firma, das heißt, die sind, vertreiben hauptsächlich in Mexiko und USA, ähm, haben aber auch einen, äh, Sitz hier in der EU in Spanien, in Madrid.
Und da läuft auch der Support irgendwie drüber. Das heißt, mir hat jemand mit einem sehr spanisch klingenden Namen zurückgeschrieben, aber, und auch das ist mir positiv aufgefallen, in einem perfekten Englisch.
Und ich hab noch nie, und ich geh ja seit, seit ich zweieinhalb bin nach Spanien, fast jedes Jahr, ich hab noch nie einen Spanier, eine Spanierin getroffen, die so gut Englisch gesprochen hat.
Also oft hat man das Glück, wenn man mit Englisch irgendwie so ein paar Worte durchkommt, aber das war wirklich perfekt, also vielleicht ist das auch irgendwie, ne, ein guter Sprachhintergrund oder so.
Meinst du, die haben, die haben, die haben, die haben, die haben, die haben, die haben, die haben, die haben irgendwie zwischendrin.
Ach so, ja gut, das kann natürlich auch sein, aber egal wie, also es war einfach, ähm, es war vor allem auch fachlich, also direkt irgendwie drauf eingegangen und vor allem nicht dieses Doofe, haben sie denn versucht, den Außen einzuschalten, ja, so irgendwie so einen für komplett dumm verkaufen, sondern er hat gleich geschrieben, hallo, ich bin hier einer von den Technikern und ja, bitte mal das und das und das probieren, ähm, und neue Firmware gibt's nicht, ähm,
haben sie noch keine, äh, aktualisiert auf dem Markt, ähm, weil oft ist es so, du weißt laut Foren, es gibt neue Firmware, aber du kommst da nicht offiziell dran und der Support macht irgendwie ewig lang rum, bevor der dir als letzten Schritt irgendwie ein Firmware abdeckt geht, ähm, und in dem Fall war das einfach alles, es hat, es war flott, es war kompetent, es hat jetzt in beiden Fällen das Problem bisher noch nicht gelöst, aber es ist entsprechend an, an Fachabteilungen weitergeleitet worden, ähm, gut, das hört man auch öfter, ja, aber, aber so wie es jetzt sich angelassen hat, wenn das jetzt so weitergeht,
dann bin ich, äh, sehr positiv überrascht.
Ich glaub, das meinten einfach nur sehr gute Chatbots.
Auch das ist möglich, ja.
Die mittlerweile, äh, ja.
Wer weiß.
Aber dann haben sie mich, äh, gut überzeugt.
Ich bin nicht gut überzeugt davon, dass du gar kein Problem hast.
Naja, doch, nee, das haben sie, das Problem haben sie nicht geleugnet, ne?
Es ist alles gut.
Ja, ja, aber das ist, ja,
du hast positive Erfahrungen dafür, aber ganz, aber ganz ohne Lösung.
Ja, aber sonst hab ich schlechte Erfahrungen und am Schluss auch keine Lösungen.
Also von daher, das fühlt sich's wenigstens besser an.
Immerhin.
Ja, sehr gut.
Ja, das ist doch schön, das ist doch schön.
Also auch mal positive Sachen irgendwie in der Retro.
Genau, nicht nur meckern.
Nicht nur meckern.
Das, was ich jetzt noch als Retro-Punkt hab, das ist neutral.
Ähm, es ist nur irgendwie ein bisschen merkwürdiger Trend gerade.
Es hat irgendwie, glaub ich, ich weiß gar nicht, wer damit angefangen hat.
Wer hat eigentlich mit so, Software macht einen Jahresrückblick für dich angefangen?
War das Spotify?
Ich glaub, ich hab's von Spotify zumindest zum ersten Mal gehört, dass es so was gibt.
Ich bin ja kein wirklicher Spotify-Nutzer.
Dass sie dann, was du gehört hast in dem Jahr, die dann irgendwie ...
Ja, genau, so ein Jahresrückblick.
Ähm, genau.
Und zwar, ich bin ich jetzt innerhalb von drei Tagen davon ein bisschen, äh, wie soll ich sagen, überschwemmt worden mit solchen Dingen.
Es hat angefangen, glaube ich, mit Apple Music.
Ach echt, die machen das auch?
Ja, da kriegst du auch natürlich eine schön animierte Sache.
Und das hab ich auch tatsächlich noch vertwittert und so, äh, dass die mein Lebensmotto gefunden haben.
Ähm, warte mal, Moment, jetzt muss ich grad nochmal ...
Und zwar, ähm, hab ich halt offenbar mein Top-Song dieses Jahr, äh, war wohl Won't Stand Down von Muse.
Und das ist schon so ein bisschen ein Revoluzza-Song.
Mhm.
Ähm, als von dem aktuellen Album, das ich insgesamt so mittelmäßig finde, aber der stach heraus.
Den hab ich, glaube ich, den hab ich offenbar auf Dauerschleife gehört dieses Jahr.
Übrigens, für letztes Jahr war das mit Abstand, ähm, dieses, äh, jetzt fällt mir grad nicht mehr ein, wie der Song heißt.
Was wir beide mehrere Tage am Stück gehört haben, erinnerst du dich?
Ähm, Into the Light.
Into the Light von, äh, den, diesen ...
Ich versuch das grade bei mir zu finden, aber es kann sein, dass es in der Android-App das nicht gibt.
Ähm, wenn du Apple Music hast, auf der Webseite, äh, dann log dich mal ein, auf der Webseite.
Ich glaube, er bin ich auch.
Und da müsstest du, da müsstest du irgendwie einen Link dahin geben, glaube ich.
Browse?
Wenn ich, äh, wenn nicht zeig ich, da, da, ja genau, irgendwie bei Browse oder so, da gibt's auf jeden Fall irgendwie so eine Kachel, die einen da hinschickt.
Okay, dein Jahr in Musik, okay.
Genau, genau.
Und ist eigentlich grafisch ganz nett gemacht, äh, und so, fand ich, fand ich irgendwie schick.
So, aber das war jetzt nicht das Einzige, also Musik.
Dann ...
Wie viele Titel hast du, hast du denn angehört dieses Jahr?
Oh Gott, ich muss da noch mal hin, warte, müssen wir da jetzt ...
985 sind's bei mir.
Ja, das hat mich, das hätte mich jetzt noch mal interessiert, so ein bisschen Quartett.
Okay, warte, dann, dann, nee, dann machen wir das jetzt, dann, ähm, warte, music, okay, gehen wir jetzt echt in die Statistiken rein, damit habe ich nicht gerechnet, aber dann machen wir das jetzt live. Ich brauche nur eine Sekunde.
Ähm, so.
Das überrascht mich auch nicht, was bei mir auf der Eins ist.
Äh, es ist bei Browse irgendwo, gell, weil ich, ich habe, ich bin über die App hingekommen.
Ah, okay, gut. Wenn das so einfach geht. Das hätte ich jetzt gar nicht mehr gewusst. Ah, ja. So, genau. Oh, ich muss mich, ja, okay, gut. Jetzt muss ich mich noch mal einloggen.
Oh, das ist der, nee, der Browser, irgendwie, ich weiß nicht, ob es am Adblocker liegt.
Der hatte bei mir gerade auch die 48 drin, also mit der 48, das ist einfach Magie.
Äh, Highlight, Reel, oh.
Gott, das war gerade sehr laut.
Ähm, so, du willst, was wolltest du genau wissen?
Wenn du runterscrollst, dann siehst du, du hast dir so und so viel Titel angehört.
Ah, ich habe diese, okay, gut, das, äh, das, äh, ah, ja, okay, ich, ah, du hast gar nicht, du hast gar nicht dieses Resume, äh, Highlight, Reel hast du gar nicht angekriegt.
Ich habe es gar nicht abgespielt, ich bin, habe einfach runtergescrollt.
Okay, das würde ich, ich habe 4819 Songs.
Was? Okay.
Ja, bei mir sind es eher immer so die gleichen, sehr enge Rotationen.
Also, mein Top-Titel ist, und ich weiß exakt warum, äh, Lives for the Living von Passenger.
Und das ist das Einschlafenied von meinem Kind, und deswegen ist das also ...
Also, äh, 253 Wiedergaben, also fast jeden Abend.
Also, die Nummer zwei weiß ich auch, warum die da ist.
Also, ich hab, also, genau, ich, äh, daran hört man schon, also, äh, ich bin, ich höre viel Verschiedenes.
Ich höre auch manchmal diese Apple-Music-Playlists.
Mhm, ja.
Ähm, ähm, äh, weil da sind echt richtig, richtig gute Playlists dabei, das muss ich jetzt echt mal sagen.
Also, ich hab keinen Vergleich zu Spotify, kann ich nix sagen, oder, oder anderen Deezer, was weiß ich.
Ähm, aber die Playlists, die sind teilweise richtig, richtig gut.
Das Gefährdige ist daran nur, die werden abgeupdatet ständig.
Aha.
Ähm, das heißt ...
Man hat sich nicht drauf verlassen, was da ...
Aber ich hab jetzt, ich hab einen Workaround gefunden.
Man kann die sich abspeichern.
Mhm.
Und dann hab, dann mach ich tatsächlich, äh, ich hab Playlists, die heißen dann zum Beispiel, äh, Viel Spaß, 20.11.2022.
Das ist nämlich die von diesem Datum, wo die, wo die waren.
Ich hab nämlich mal eine, ähm, warte, warte, welche war das denn?
Das war die, ähm, ah, Feeling Good, glaub ich.
Die war mal relativ gut, ich weiß nicht, ob die immer noch so gut ist.
Und die hab ich da, bei der hab ich's verpasst.
Da hab ich das noch nicht geblickt, dass die upgedatet werden.
Und, äh, jetzt sind da komplett andere Songs drauf.
Und das ist sehr, sehr schade, weil es war eine grandios gute Playlist.
Naja, also vier, was, wie viele Songs hattest du?
Äh, 985 waren's bei mir.
Okay, 4800 ist halt schon eine andere Nummer.
Genau, und halt Won't Stand Down ist mein Nummer-eins-Song.
Und dann Because It's There von Haken.
Und ich weiß genau, warum der auf Platz zwei gelandet ist, warum der so weit oben gelandet ist.
Weil ich, ähm, davon ja ein, äh, A Cappella-Cover gemacht habe.
Und da hab ich mir natürlich öfter mal, also sehr, sehr oft angehört.
Ähm, genau.
Das ist nicht öffentlich.
Leider.
Noch, noch, vielleicht, vielleicht, nee, vielleicht, vielleicht hau ich's irgendwann noch auf Soundcloud.
Vielleicht trau ich mich.
Ja, auf jeden Fall kannst du dich da trauen.
Hast du schon gehört.
Ja, okay.
Ja, und dann halt diese ganze Platte davon, Haken, ja.
Bei mir ist auf zwei und drei noch Waterman and Sugar und, äh, Haus am See.
Haus am See ist auch eins von den, von den Einschlafliedern.
Ah, krass.
Ja, und, ähm, Follow the Light ist bei mir noch auf Platz vier.
Ich hab, bei mir ist es total interessant, ähm, ich hab halt diesen Muse-Song, also Won't Stand Down auf Platz eins.
Und dann kommt ein ganzes Album von Haken im Prinzip bis Platz zehn.
Ähm, und zwar das The Mountain.
Das hab ich tatsächlich extrem oft gehört.
Irgendwann, wenn du das gleiche Album immer wieder hörst, dann sind die alle dabei.
Und das ist, äh, das ist sehr alt.
Das hab ich dieses Jahr erst entdeckt, für mich dieses Album.
Ich kannte die Band schon und hab irgendwann gedacht, ah ja, vielleicht gibt's ja noch ein paar alte Alben von denen, die ich gut find.
Oder so, weil ich halt neuere Sachen, die fand ich gut.
Und dann bin ich bei dem hängen geblieben.
Das ist tatsächlich komplett anders als die Alben, die ich sonst so kenne.
Und es ist aber fantastisch, fantastisch gut.
Also es ist so, tatsächlich zieht sich, das mag ich immer ganz gern, so ein musikalisches Konzept durch das ganze Album irgendwie durch.
Ähm, ich weiß nicht, ich weiß nicht, ob es auch ein inhaltliches Konzept gibt, ob es ja echt ein Konzeptalbum ist.
Ähm, aber es ist, äh, es ist echt fantastisch gut.
Und da ist eben auch dieses, ähm, Because It's There drauf und, äh, ja, The Path.
Also einfach ganz tolle, ganz tolle Musik.
Ah, interessant.
Ich hab gar nicht die Top Artists angeguckt.
Da hab ich nämlich auf Platz zwei Plini, das weiß ich nicht, glaube ich, hab ich dir auch mal gezeigt, oder?
Okay, weiß ich nicht.
Das ist so ein australischer Gitarrist, der auch so ein bisschen Proc.
Ah, und auf Platz drei, ach, das ist ja, das ist ja witzig.
So, Achtung, das sag ich, das, jetzt, wir steigern uns jetzt voll da rein in dieses Thema, pass auf.
Ich hab ja noch, ich bin ja, ich bin ja erst noch bei Replay Nummer eins, ne, es kommen noch zwei weitere.
Ähm, nee, aber da müssen auch nicht alle durchgehen, also.
Nee, überhaupt nicht, aber, ähm, ich wollte noch, ich wollte noch kurz ein Zeichen setzen.
Ich weiß nicht, ich hab das ja schon öfter mal gesagt, dass ich musikalisch, ich weiß nicht, ob ich's hier schon mal gesagt hab, dass ich musikalisch überhaupt gar keine Berührungspunkte mit irgendwas hab.
Ähm, und auch zu allem stehe, was ich hör.
Ich hab nämlich vor kurzem ...
Berührungsängste meinst du, oder?
Was? Berührungsängste, ja.
Ja, Berührungspunkte hast du gesagt.
Ach, Berührungsängste.
Sag das halt.
Äh, nee, Berührungsängste, korrekt.
Ähm, und ich hab auch überhaupt gar keine Angst, irgendwie jemandem zu sagen, was ich hör.
Und ich hätte auch überhaupt gar keine Angst, irgendwie das zu sharen, egal was da drauf ist.
Ähm, weil ich nämlich vor kurzem einen Tweet oder einen Mastodon-Post gelesen hab, wo einer gesagt hat, boah, ja, äh, ich könnte ja jetzt mal ein Replay, das könnte ich ja niemals veröffentlichen, weil da sind so viele schlimme Sachen drauf.
Und ich denk mir so, warum nicht?
Gerade, also, also, was soll das eigentlich? Also, auf Platz drei bei mir bei den Artists ist Ariana Grande.
Mhm.
Auf Platz vier ist Doja Cat. Doja Cat feier ich gerade ohne Ende. Ist ja schon länger, länger bekannt.
Das hast du auch mal, glaub ich, hier, ja.
Ja, hier.
Also, die hat, die macht ja so geiles Zeug und so modern auf eine besondere Art und irgendwie auch total lustig, sehr memeable. Es ist fantastisch, was die macht.
Ähm, ja. Und auf Platz fünf Dream Theater, interessanterweise.
Ähm, so. Irgendwo steht doch auch noch, wie viel ... Okay, das ist krass. Ich hab 191 Alben abgespielt.
Das find ich jetzt tatsächlich auch viel.
78 hab ich.
Krass. Okay.
Ah ja, genau. Das ist eins, was, was einen Platz in meinem Herzen hat, ist da nicht für von Dendemann.
Mhm.
Hab ich ja auch schon öfter mal erwähnt. Einfach geniale Wortspiele. Wirklich sehr, sehr gut.
Jetzt können wir nicht noch weiter.
Nein, nein, nein. Das war jetzt nicht. Nee, aber ...
So. Also, ich wollte ja eigentlich erzählen, ich bin von diesen Replays oder keine Ahnung, wie man sie nennt, ein bisschen überrannt worden. Also, das erste war halt Apple Music.
Dann haben wir tatsächlich für den Podcast eins bekommen von Spotify. Wenn man einen Podcast bei Spotify hat, kriegt man offenbar auch so was. Und das war wirklich so hart animiert.
Mit Epilepsie hast du da ein Problem. Wirklich. Das war richtig, richtig krass blinky. Und so ein paar Zahlen und irgendwie ... Wir stehen offenbar total toll da bei Spotify. Wir sind in den Top 20 Podcasts oder irgendwie so was.
Was ich auch nicht glauben konnte, dachte ich mir ... Wir haben ... Also, ja, ich kenne ... Wir machen ja überhaupt gar keine Werbung für uns bei Spotify. Gar nicht. Wir haben es nicht mal auf unserer Website.
Ja, also, das ist ... Wer uns da findet, findet uns da.
Doch, ich glaube, im Share-Button, oder?
Ist das nicht im Share-Button drin?
Das glaube ich nicht. Den habe ich auch schon lange nicht mehr getestet. Ich habe keine Ahnung, ob der überhaupt geht.
Mhm.
Das war auch nett. Aber das kannst du dir auch mal angucken.
Nee, das kannst du dir nicht angucken, weil den Spotify ... Nee, das muss ich vielleicht mal gucken, ob ich das da rausgepobelt kriege, dass ich das Thema schicken kann.
Aber nett. Aber auch irgendwie wild. Und dann ... Wir haben ja hier auch schon mal über Podcast-Apps gesprochen.
Pocket-Casts hat mir auch so was geschickt.
Und da war ich dann doch auch wieder erstaunt, wie viele Podcasts ich offenbar höre.
Dabei höre ich tatsächlich mittlerweile auch teilweise, auch wenn ich es nicht will, Podcasts auf Spotify, weil es Podcasts auf Spotify gibt, die es halt sonst nirgends gibt.
Und sich keiner mehr ... Offenbar sich keiner mehr traut, die rauszupoppeln und in einem Feed anzubieten.
Also, ich habe über Pocket-Casts 2022 13 Tage und 7 Stunden Podcast gehört.
Ja, das ist viel.
Krass.
Finde ich. 13, ich weiß nicht. Vielleicht hast du das auch Pocket-Casts?
Ich such gerade, wo ich ... Ja, ja.
Das ist in den Einstellungen. Bei Profil hast du so dein Ja in Podcasts.
Vielleicht hast du es auch nicht, aber bei mir ist es auf jeden Fall.
Und, äh, ja. Da war auf jeden Fall alles gesagt. Der Podcast war irgendwie top.
Ach je, jetzt kriege ich es gerade nochmal aufgemacht. Ja, okay.
Da würde mich mal interessieren, wie viele Stunden du hattest oder wie viele Tage oder so.
Also, einen Tag und zwölf Stunden.
Okay.
Wie viele hattest du?
13 Tage.
Ja, okay.
Und sieben Stunden.
Okay, ich bin, ich bin ein Medien-Junkie, offenbar.
Ich höre unfassbar viel Musik und, äh, wahnsinnig viele Podcasts.
Sieben verschiedene Kategorien.
Zwölf verschiedene und 71 Episoden.
Steht hier eigentlich bei Apple Music, wie viel Zeit ich mit dieser Musik, wie viel, also ich höre das ja viel bei der Arbeit auch.
Ähm.
Wie viel Zeit ich damit verbracht habe?
Ich hoffe doch nicht.
Es steht immer nur bei den einzelnen Alben und bei den einzelnen Songs.
Aber steht, glaube ich, nicht viel Zeit insgesamt.
Naja.
Ja, das ist schon.
Okay, ja, also, äh, ich war ein bisschen überfahren, dachte, das ist irgendwie, das macht jetzt irgendwie jeder so Jahresrückblick, jede App irgendwie.
Ähm, weiß gar nicht, machen wir noch einen Jahresrückblick?
Hat tatsächlich sich ja jemand gewünscht, ne?
Stimmt.
Er oder sie hätte gerne einen, einen Podcast-Jahresrückblick.
Mal gucken, ist ja noch ein bisschen.
Ein paar Wochen haben wir noch bis bald.
Ja, wenn uns kein Thema einfällt, dann machen wir noch einen Jahresrückblick.
So was hat sich, was hat sich sehr schnell vorbereitet, würde ich sagen.
Okay, ähm, das ist, das, das ist dieses Retro-Thema.
Jetzt sind wir echt tief eingestiegen.
Ja, das haben wir jetzt länger als, als geplant.
Aber ich mach's ganz kurz, ähm, und zwar ist, äh, wann war das gestern, vorgestern?
Vorgestern am Donnerstag, ähm, ist ein Streetview-Auto vor mir hergefahren.
Ich dachte so, huch, was hat der denn da vorne drauf?
Und dann ist er vor mir abgebogen und es stand seitlich drauf, Streetview.
Das heißt, man munkelt, hab ich dann gegoogelt, dass es ein Comeback gibt von Streetview in Deutschland.
Ja, ich nehme mal an, dass die sagen, hey, Apple hat das mittlerweile auch.
Äh, jetzt machen wir, jetzt machen wir nochmal einen neuen Versuch, weil Apple Karten hat das mittlerweile.
Kann man Apple Maps eigentlich aufrufen von einem Nicht-Apple-Device? Ich glaube nicht, oder?
Ich glaube, es gibt kein, ich weiß nicht, ob es was im Browser gibt.
Ich weiß nur, dass, äh, ein Kollege nie mag.
Apple.com slash Maps.
Ah, echt?
Ähm, ja, aber es ist nur so eine Landingpage.
Da gibt's auf jeden Fall mittlerweile auch so eine Art Streetview, ähm, was mich dann doch überrascht hat, weil ich so dachte, das ist irgendwie, ja, genau, dafür muss man nämlich dann auch noch diese Icons kennen, weil ich glaub, so ein komisches Fernglas-Icon oder so.
Oder sind's Schuhe? Ich glaub, es sollen Schuhe sein. Die Icons bei Apple, die sind ja nicht immer eindeutig, ne? Muss ich jetzt mal dazu sagen.
Sind das Schuhe oder ist das ein Fernglas? Umsehen verwenden, dann wird's wahrscheinlich ein Fernglas sein.
Ah, es ist ein Fernglas. Gut. Ja, genau. Aber das gibt's da, äh, es gibt's da seit einer Weile und ist auch, auch, auch Deutschland ganz gut erfasst.
Ähm, find ich cool und, äh, bin gespannt. Also, ich würd, würd sagen, Google hat jetzt gesagt, hey, äh, andere haben's auch, jetzt trauen wir uns doch mal. Mal gucken.
Also, ich finde keine offizielle, ähm, Maps-Applikation, so wie jetzt maps.google.com, aber es gibt, ähm, MapKit.js, wo man also, so wie Google Maps, auch, ähm, das einbinden kann in Webseiten.
Also, kann man sich das theoretisch selber basteln.
Ah. Ja, verrückt, das ist dann keine offizielle, ne? Es wird irgendwelche, ähm, es wird irgendwelche, gibt's online.
Aber bin gespannt, weil, äh, ich erinnere mich noch, dass ich, äh, als ich in Karlsruhe zum ersten Mal eine Wohnung gesucht habe,
2018, äh, 2018, soll ich sagen, 2008 müsste das gewesen sein, ähm, da ist mir zum ersten Mal, als ich da unterwegs war, irgendwo,
äh, ich glaub, in der Nordstadt ist, ähm, mir zum ersten Mal so ein Google-Streetview-Auto begegnet.
Da dachte ich noch, ah, cool, dann bin ich in ein paar Wochen oder was weiß ich, wie lang das dauert.
Irgendwie da drauf, mit dem Auto, mit dem ich da unterwegs war.
Ähm, nee, kam dann aber halt nie.
Weil ich nicht weiß, ob's in Deutschland mittlerweile, ähm, Google-Streetview gibt.
Na, vereinzelt und veraltete, ähm, Sachen, ja.
Aber da gab's ja riesen, äh, ich will mein Haus nicht da drauf haben, und, äh, ja.
Ja, Apple hat's einfach gemacht.
Ja, richtig.
Ja.
Gut.
Okay, gut.
Also, mal gucken, wer, äh, berichten, wenn sich da was tut.
Ja, das war's mit der Retro.
Yes, dann kommt jetzt ...
Die Property der Woche.
Yes.
Das ist ein Applaus wert.
Applaus für richtige Grammatik.
Also, nach 48 Folgen klappt's dann vielleicht irgendwann mal.
Genau, äh, es ist eine ganz, ganz kleine Property.
Es ist eine CSS-Pseudo-Klasse, ähm, die eigentlich, die auch noch, die auch noch einen Bruder oder Schwester hat.
Ähm, und zwar geht es um Read minus Write.
Ähm, wie bin ich drauf gekommen, kann ich mal ganz, ganz ehrlich sagen.
Ich hab gedacht, ja, so eine kleine Property, muss mal gucken, was nehm ich denn?
Und dann bin ich auf, äh, äh, das Working Draft Glücksrad gegangen, äh, Working Draft slash Glücksrad.
Ähm, und, äh, da haben die so einen, so einen Random, so einen Random, äh, Generator, wo man sich Random Specs ausspucken lassen kann.
Und dann bin ich da drauf gelandet.
Wirklich, erster Klick war das, weil da hätten auch Sachen rauskommen können, wo ich sag, ah, weiß ich nicht, ob das, ah, ist mir ein bisschen zu groß jetzt für eine Property oder so.
Aber Read Write, und das ist ein schönes Kleines.
Und Konstantin hat vorhin in der Vorbesprechung schon gesagt, das kenn ich gar nicht.
Genau dieses, diesen Impuls, da hatte ich auch, äh, Read Write, das klingt irgendwie familiar, aber ich kenn's eigentlich nicht.
Turns out, ähm, es geht dabei um Eingabefelder, ähm, oder Elemente, die, die eingabefähig sind, also irgendwas mit Content Editable, also Input Text Area, äh, also was, wo ich Text reinschreiben kann, oder Content Editable.
Und zwar beschreibt das, diese Pseudoklasse, den Zustand, wenn ich hier etwas reinschreiben kann.
Das Geschwister, die Geschwisterpseudoklasse dazu ist, das heißt, es ist eigentlich der Standard.
Read Write, also Input, Doppelpunkt, Read minus Write, äh, ist im Prinzip der Standard von jedem Eingabefeld, das keine anderes, andere Mut, die dabei stehen hat.
Also sprich, es ist nicht Read Only und es ist nicht Disabled.
Es ist nicht Read Only und es ist nicht Disabled, korrekt, genau.
Äh, ich hab auch natürlich wieder eine kleine Demo gebastelt, äh, es gibt's bei CodePen, ähm, dabei ist mir auch noch etwas Interessantes aufgefallen, genau.
Aber es gibt halt auch noch Read Only, das wäre zum Beispiel, wenn das das Read Only Attribut hat, das Eingabefeld, oder, keine Ahnung, wie gesagt, Text Area Content Editable, äh, dann kann man ja nichts reinschreiben, dann kann ich, dann wird der Value so dargestellt, wie er ist, und er ist halt so, kann nichts dran verändern.
Ähm, und es gibt ja auch noch Disabled.
Äh, das fand ich ganz interessant, dass Disabled auch gleichzeitig Read Only ist.
Mhm.
Ähm, also auch, auch die Pseudoklasse.
Das heißt, äh, beide werden dann angewandt.
Es gibt ja auch Doppelpunkt Disabled.
Ja.
Und beide gelten dann, das hab ich zufällig rausgefunden, weil ich, weil ich den Selector so, so offen geschrieben hab, dass ich dachte, hä, wieso ist denn jetzt der gelbe Rahmen auch da?
Was soll, was soll, was soll das denn?
Ähm, genau.
Also ja, Chrome kann das schon seit Version 1 und Firefox seit 78.
Das ist uralt.
Das ist, weißt du, echt, seit 78?
Ja, ja.
Das ist krass.
Äh, ja.
Und das war, und 78 heißt, das war 2020.
30. Juni 2020.
Das ist echt extrem spät.
Es ist erstaunlich.
Hä, sind wir beim, sind wir beim Selben?
Also hier laut, laut MDN.
Ah, okay, bei MDN, ja.
Okay, aber, ja, ich hab hier auch bei Kenner News hab ich hauptsächlich das Attribut gefunden.
Ähm, nicht die Pseudoklasse.
Das ist natürlich nochmal ein Unterschied, weil Read-Only, äh, gibt es schon ewig.
Also, dass du Read-Only auf ein Formularfeld machen kannst oder auf ein bescheidbares Feld.
Ja, aber Read-Write war tatsächlich mehr kein Begriff und, äh, das ist tatsächlich ganz gut, um, ähm, man muss ja oft irgendwie Input, dann Type-Text, Type-E-Mail, Type-Phone, äh, am besten alles abfrühstücken, was es geben könnte, äh, Number noch, ähm, Date vielleicht, ja, und, äh, wenn man so, so Frameworks hat, irgendwie ein fertiges WordPress-Theme, wo man irgendwas erweitern will, dann denken die oftmals nicht daran, dass es da ja noch andere Typen gibt und haben in ihrem Standard-CSS halt nur das, was sie da grad nutzen.
Also, wenn es jetzt um ein Formular halt geht und, äh, du willst das irgendwie aufbohren, weil du brauchst einen Date-Picker, den das Theme nicht vorsieht, standardmäßig, dann haben die da nicht dran gedacht, also musst du dann das, das CSS kopieren, damit das genauso aussieht wie das Formular und damit kann man natürlich einfach sagen, irgendwie Input, Doppelpunkt, Read-Write und dann, äh, betrifft das ja alle.
Ja.
Ohne, dass ich jetzt halt irgendwie Input, achso, wobei, das müsste man mal ausprobieren, ob Input-Type-Checkbox, ob das da auch greift, weil dann, dann bringt es schon wieder nichts mehr, also dann müsste ich sagen Input-Not,
Input-Type-Checkbox, um das, äh, nachzuvollziehen.
Das hab ich nicht ausprobiert tatsächlich, ähm, ich, weil es stimmt, das ist tatsächlich, kann man, ist die Frage, ist in den Checkbox-Klicken eine schreibende Aktion in diesem Sinne?
Mach mal kurz hier Input, type Text.
Ich hab jetzt halt gedacht, ähm, Read-Write gibt's vor allem wahrscheinlich deswegen, weil's immer ein Pendant geben muss, um, um das andere, also, ich glaube, Read-Only ist eigentlich in den meisten Fällen das Interessantere, dass ich ein Read-Only-Feld irgendwie anders stylen will, als ein normales sozusagen, das kein Read-Only hat, aber normalerweise ist es ja dann oft so, dass es dann ein explizites Pendant gibt.
Deine Tastatur ist übrigens immer noch recht laut.
Aber leiser als die anderen.
Also es ist tatsächlich so, dass, äh, das Input-Type, äh, also Checkbox nicht mit abgefrühstückt wird.
Das heißt, genau für den Fall,
Ich möchte alle Inputs, die irgendwie Text, Phone, Mail und so weiter sind, äh, möchte ich damit abfrühstücken.
Ja.
Oh.
Ich glaub, der Konstantin, der kriegt grad was gereicht.
Ich krieg grad einen Tee eingereicht hier.
Das ist ein Service.
Was ist hier los?
Zum Bier gibt's einen Tee.
Ja.
Damit warm wird, ja, unsere Heizung ist kaputt seit Wochen.
Oh.
Wie seit Wochen?
Soll ich noch vorbeikommen, bisschen Plastik vorbeibringen für die Mülltronne?
Für die Müllverbrennung, ja.
Für die Tonne, die im Wohnzimmer steht.
Weil Holz kann sich grad keiner leisten, aber Plastikverpackungen hätte ich noch ein paar.
Hätt so einen gelben Sack hier, den kann ich nicht vorbeibringen.
Nee, das ist hoffentlich jetzt absehbar. Am 5. soll die repariert werden, Montag.
Was habt ihr denn für eine Heizung?
Ähm, das ist eine Wärmepumpe und Fußbodenheizung.
Oh.
Ah, also so richtig modern.
Und da ist die Steuereinheit kaputt.
Und dementsprechend, äh, am Anfang hatten wir auch kein warmes Wasser.
Immerhin, das geht jetzt im Notbetrieb, ähm, aber ist nicht sehr angenehm gerade.
Aber warmes Wasser macht ihr auch noch gleich.
Ja.
Ah, krass.
Sehr modern.
Wurde vor ein paar Jahren hier umgerüstet im Haus.
Ja, hast du keinen Lötkolben?
Ähm, ja, das, ja, ich und Hardware.
Vergiss es, vergiss es, vergiss es.
Ich, ich komm mal vorbei, ich halt mal meinen Lötkolben drauf, danach geht's wieder.
So funktioniert das mit, mit, äh, mit Hardware.
Musst du überall deinen Kolben reinstecken.
Oh Gott.
Lötkolben, natürlich.
Äh, äh.
Da musst du überall deinen Lötkolben, äh, aua, aua.
Au, aua.
Das wird immer schlimmer.
Au, aua.
Okay.
Da gibt's doch diese, schnell, schnell zurück zum Thema.
Nee, nee, nee, nein.
Da war so ein lustiges Bild irgendwie, was irgendwie so für, für Techniker, äh, stehen sollte, wo, ähm, wo ne, also irgendwie Werbung für irgendwie Techn, HR oder so, für irgendwelche technischen Berufe.
Klackertiklack, ähm, und, äh, da war ne Frau drauf, es tut mir leid, es hätte auch ein Mann sein können, es ist vollkommen egal, ob es ein Mann oder ne Frau ist, auf jeden Fall, es war eine Person drauf, die Lötkolben gehalten hat, aber halt nicht am Griff, sondern vorne am Metall.
Ah.
Und dann dachte ich mir so, okay, nicht schlecht, nicht schlecht, also wer das, wer so löten kann, also, wow.
Oh Mann.
Das ist, das ist auch ein Skill, also wer das kann, sehr gut.
Sehr gut.
Also ich hab's mal schnell eben her ausprobiert, deswegen hat's geklappert, ähm, also es ist genau dafür zu gebrauchen, also Text Areas, äh, fallen da auch drunter, ähm, und Inputs jeglichen Types, außer eben Input Type Checkbox und wahrscheinlich, denke ich mal, Input Type Radio, ebenfalls nicht, äh, ne, erst, hä, warte mal, ah, jetzt, hat ein bisschen gebraucht zum Aktualisieren, genau, also da kann ich eine Outline drumherum setzen, äh, passiert nix, Border, Mama, Solid Red,
10 Pixel, passiert nix. Ähm, was könnte man noch machen, Margin, müsste man auch sehen, Margin.
Ich glaube, ich muss dir eine Podcast-Tastatur noch irgendwie kaufen, so eine zweite, das geht echt nicht.
Das ist immer noch zu laut, ach komm, das ist wahnsinnig laut.
Aber das hört man nachher im Podcast gar nicht, die Leute werden denken, was, was regt das auf, weil ich, da ist ja ein Noise Gate, da kommt ja noch ein Noise Gate drüber.
Okay, liebe Menschen, ich bin sehr gespannt, liebe Menschen, äh, sagt mal, äh, wenn ihr das jetzt hier hört, schreibt doch einfach mal einen Kommentar, ob ihr jetzt gerade ganz laut klackerdiklack gehört habt, oder ob das Noise Gate das rausgefiltert hat, dann bin ich der einzig Leidtragende, das ist okay.
Nein, damit kann ich absolut leben, wenn ich mir sicher bin, dass nur ich das höre. Weil ich sehe ja auch, wie du tippst, das ist ja was ganz anderes. Übrigens, Signal, Video-Verbindung, sehr gut.
Super, ne? Also kaum hat man die Nextcloud aus.
Wie kann man die Nextcloud aus? Geht jetzt auch mit den Daten. Ja, die ist ein bisschen hungrig, habe ich so den Eindruck. Ab und zu muss die sich mal so einen kleinen Snack reinziehen, so von aka, ich lasse da mal die komplette Verbindung aus.
Das macht die Dropbox ja auch gerne, also diese ganzen Sync-Apps, die greifen sich irgendwie, auch wenn sie gar nichts zu übertragen haben, die greifen sich einfach mal die Bandbreite, weil haben es besser als brauchen.
Genau, haben es besser als brauchen.
Also sehr gut, ich habe was gelernt und ich habe was echt Nützliches gelernt und werde das in Zukunft einsetzen können. Super Sache.
Macht einen Fünfer, weißt ja.
Ach.
Nimmst du dir aus der Streamkasse.
Nimmst du dir aus der Streamkasse, die sowieso bei mir ist.
Richtig.
Okay, alles klar. Sehr gut.
Gut.
Okay, ja dann.
Dann kommen wir jetzt zur nächsten Property eigentlich, aus der ein Thema geworden ist.
Vielleicht mit Jingle.
Hier ist WWS IV mit dem Tagesthema.
Vielleicht muss ich den Jingle nochmal machen, der ist mir viel zu ernst.
Nein, das ist doch gut, das ist doch super.
Das soll ja gerade.
Vielleicht noch so ein Pups ans Ende.
Siehst du, das schneide ich jetzt einfach raus und lasse es drüber spielen.
Und so ist unser Endcheck entstanden.
Ja, das Tagesthema ist, eigentlich war es mal ursprünglich angedacht als Retro-Thema und dann habe ich gedacht, na da könnte man eine Property draus machen und dann ist es irgendwie jetzt doch so viel geworden, dass wir gesagt haben, jetzt können wir es auch als Thema machen.
Und deswegen habe ich es aus der Retro dann auch rausgeschmissen.
Und zwar erkläre ich mal, wie ich da überhaupt drauf gekommen bin.
Und wir haben jetzt einen Kunden gehabt, da handelt es sich um eine öffentliche Stelle.
Das heißt, die haben halt so ein paar andere Vorgaben, was diverse Dinge angeht und unter anderem halt auch die Serversicherheit und was da so gegeben sein muss.
Und dann haben die uns, das hatten wir auch nicht so auf dem Schirm, also klar, wir wussten schon so grob, Accessibility und so Cookie Handling und sowas, das muss schon alles sauber sein.
Aber es kam dann eine Mail von deren Technikabteilung irgendwie noch so, ja, wir haben jetzt die Seite gescannt und die und die Punkte sind irgendwie kritisch aufgefallen.
Und im Endeffekt war das das Größte, es gibt ein paar Sachen, die muss der Hoster entsprechend machen.
Und das Größte waren so ein paar Header, die da gesetzt werden sollten.
Und so bin ich in ein, ein Rabbit Hole, gibt es da eine englische, eine deutsche Entsprechung?
Ich bin in ein...
Honigtopf.
Ich glaube, Honigtopf sagt man.
Okay, gefallen.
Nein, das ist Quatsch.
Also ich habe mich, ich bin da so, ja, in so einen Tunnel gefallen, so Alice im Wunderland mäßig.
Und das war echt so, also man merkt, dass das eine weniger besuchte Ecke der Webentwicklung ist, weil es alles etwas obskur ist und es gibt wenig Beispiele dafür.
Und manche Dinge sind irgendwie gar nicht dokumentiert, da kommt man dann erst drauf, okay, so muss ich es machen, dann funktioniert es.
Also es ist jetzt nichts, nichts Alltägliches und wahrscheinlich werden sich die meisten da hoffentlich nicht selber so drum kümmern müssen, sondern es gibt dann entsprechende andere Abteilungen, die das machen.
Aber da wir halt so die eierlegende Wollmilchsau sind und halt irgendwie Frontend und Backend und so machen und so ein bisschen Server-Administration auch noch, ist das halt jetzt auch wieder an mir hängen geblieben.
Und zwar geht es um sicherheitsbezogene Header, die man entweder auf dem Server selbst setzt, also zum Beispiel in der HT-Access-Datei bei Apache oder über die PHP-Header-Funktion oder was auch immer für eine Sprache ich nutze, kann ich natürlich die HTTP-Header auch beeinflussen.
Und dann kann ich einfach PHP zum Beispiel sagen, Header X, XSS-Protection und setze das irgendwie auf Mode gleich Block oder wie war das?
D auf eins, dann Semicolon, Mode gleich Block und das ist schon der erste Header, einer von den einfacheren, der aber inzwischen nur noch vom Safari unterstützt wird.
Also mal andersrum, ja, nicht mehr nur da nicht, sondern nur noch da und die anderen haben ihn schon länger aufgegeben.
Wobei Edge hatte das auch noch bis Version 16, aber Firefox hatte nicht, Chrome hat es nicht, also Firefox hatte das auch noch nie und hat sich da auch gewehrt.
In dem Ticket wurde gesagt, nee, das werden wir auch nicht implementieren.
Und was das Ding gemacht hat, ist halt im Endeffekt nur, wenn der Browser erkannt hatte, dass da eine vermeintliche XSS, also Cross-Site-Scripting-Schwachstelle ist,
dann hat er Maßnahmen ergriffen, um das Skript zu bereinigen oder diesen Angriff zu blockieren.
Und das war alles. Also das hat ausgerechnet, der E, er hat das glaube ich erfunden, die haben das eingeführt als Nicht-Standard-Header, deswegen auch das X vorne dran.
Und ja, so konnte man die Seite ein bisschen absichern und das war wirklich nur so,
setz den Header und die Seite ist ein bisschen sicherer.
Mit Vorsicht zu genießen, weil anscheinend, wie ich gelesen habe, dieser Schutz dann wiederum in anderen Kontexten Lücken öffnen konnte
und man halt irgendwie doch wissen musste, was man tut und was man eigentlich damit bezweckt.
Aber, die wollen diesen Header gesetzt haben, also wird der Header gesetzt.
Wenn der Header gesetzt werden soll, wird der Header gesetzt.
Und das nächste ist auch ein relativ einfacher noch von der Komplexität, X-Frame-Options.
Da kann ich einfach sagen, in welcher Seite darf diese Seite eingebettet werden.
Ja, also so ein Frame-Breaker, aber halt der einfach Client-Seite schon direkt sagt, ich werde hier nicht ausgespielt.
So kann man halt auch solche Click-Through-Attacken irgendwie verhindern.
Also, dass du eine Seite in einem iFrame vollflächig lädst, aber wenn der User irgendwie auf Login klickt,
dann legst du halt, also du legst dann irgendwie mit Transparenz dann andere Felder drüber
und dann denkt der User, er gibt auf der Seite seine Login-Daten ein, macht das aber eigentlich auf deiner Seite.
Wenn das gut gemacht ist, ja, fällt man darauf rein.
Und um das zu unterbinden, also Google zum Beispiel lässt sich auch nicht einfach in einem Frame einbinden,
weil die sagen halt, nee, wir wollen, wenn schon, dann als Hauptseite dargestellt werden.
Und das konnte man damit schon auch recht früh, glaube ich, konnte man das umsetzen.
Mal gucken hier, Chrome 4.
Ich habe noch eine Frage zu dem Scan.
Weißt du, was für ein Tool die verwendet haben oder haben die es irgendwie von Hand?
Muss ich mal nachgucken, kann ich vielleicht im Nachgang sagen, aber müsste jetzt erst.
Das war auch eine ganz, ganz eklige Excel-Datei, Amt halt, ne, die dann auch irgendwie,
also selbst auf dem 4K-Bildschirm kann ich die nicht in voller Breite darstellen.
Also da muss ich scrollen und die eigentlichen Informationen waren irgendwie auch erst im vierten Sheet.
Also es ist irgendwie, ja.
Und dann halt auch Sachen angemerkt, die halt nicht wirklich kritisch sind.
Gut, die waren dann auch mit entsprechendem Scoring dann auf null, aber sie wurden halt aufgeführt
und es ist nicht wirklich alles sinnvoll, aber wir hatten auch die Möglichkeit zu sagen,
okay, wir können sagen, warum ist das so und können wir da was machen oder nicht.
Also das war jetzt nicht so, ja, es muss jetzt alles umgesetzt werden, sonst gibt es kein Geld oder so.
Ja.
Aber es sind halt, ja, die möchten halt möglichst sicher sein.
Natürlich haben die als öffentliche Stelle auch Interesse daran, dass da nicht irgendwie dann heißt,
ah, guck mal, die gehen nicht sparsam oder nicht sorgsam genug mit irgendwelchen Daten um.
Genau, so, das waren die zwei Ersten.
Das war jetzt noch relativ, ne, die hatte ich auch schon mal beide schon mal gehört oder auch gesehen in irgendwelchen Requests,
wenn man mal irgendwas debuggt.
Also das war jetzt nicht so ganz unbekannt.
Ich hab's aber noch nie selber vorher gesetzt, weil ich irgendwie dachte, ja, ist das jetzt so wichtig, das zu tun.
Genau.
So, und dann ging's aber los.
Content Security Policy.
Oh ja, schön.
Ja, sag dir auch was.
Ja, ja, ja.
Also, kannst dir denken, in einer großen Firma mit krass großen Webportalen und so, da wird schon auf sowas geschaut.
Also, da ist das eigentlich allgegenwärtig und das, wie soll ich sagen, das macht die Arbeit nicht unbedingt einfacher, wenn man sich um sowas kümmern muss.
Also, gerade wenn das schon entsprechend eingestellt ist und du aber halt keinen Einfluss auf den Server hast, weil der halt von der anderen IT-Abteilung gestellt wird
und du willst dann aber auf irgendwas zugreifen und dann heißt hier, ja, nee, das erlaubt die Security Policy nicht.
Aber wir gehen gleich noch ins Detail, was das genau ist.
Also, mir hat das auch schon was gesagt, ich hab das schon mal gelesen und wusste so grob, ja, irgendwie, ne, kann man da heller setzen.
Aber was es genau ist und was es für Möglichkeiten da alles gibt und wie komplex das ist, das war mir nicht bewusst.
Und ich glaub, das ist auch was, wo man so als normaler Frontendler, der halt nicht irgendwie auch noch ein bisschen Backend machen muss, wo man gar nicht mit in Berührung großkommt.
Außer eben, ne, man hat irgendwie Vorgaben und stellt fest, oh, ich kann das gar nicht machen, was ich da möchte.
Ja, und das ist, da hat auch gleich der Host, als wir mit dem drüber gesprochen haben, gesagt so, ja, lest euch da mal ein, hier ist ein Link, viel Spaß, das ist sehr komplex.
Und ich dachte noch so, ja, ein paar Heller setzen, das ist doch kein Hexenwerk.
Genau, also der Heller heißt Content minus Security minus Policy.
Und es gibt den auch noch in der Abwandlung, Content minus Security minus Policy minus Report minus Only.
Also Content Security, Policy, Report Only.
Und das fand ich allein schon interessant, also ich erklär gleich noch, was man da genau überhaupt festlegt, aber grundsätzlich geht es darum, dass man eben Funktionalitäten einschränkt und sagt, okay, innerhalb von dieser Seite gelten bestimmte Regeln, die müssen erfüllt werden, ansonsten werden Inhalte nicht eingebunden oder es wird eben eine Fehlermeldung geworfen, statt irgendwas auszuführen.
Und man kann da auch ein Reporting aktivieren und dann wird an eine bestimmte URL, die da angegeben ist, wird dann wirklich ein Report geschickt.
Da gehe ich nachher noch im Detail drauf ein, aber das fand ich irgendwie schon mal so, ach krass, okay, da wird wirklich was, das wird nicht einfach im Kleinen umgesetzt, ich kann darüber mich auch eben benachrichtigen lassen.
Und das ist eben der Unterschied zwischen den Headern, also ich kann da bei beiden das gleiche angeben, aber der eine, der setzt das wirklich durch, also was da drinsteht in den Regeln, wenn das nicht erfüllt ist, dann funktioniert es auf der Seite nicht.
Und der andere, der merkt das alles an, schickt das eben an diesen Reporting-Server, aber er lässt alles durch, also er lässt alles passieren und so kann man so graceful so ein bisschen erstmal gucken lassen, was wäre denn dadurch, wenn wir das jetzt aktivieren, was würde denn da beeinflusst werden und kann dann darauf reagieren.
Kannst du auch beides machen?
Das ist eine gute Frage, also klar, es sind zwei verschiedene Header, also du könntest sicherlich beide setzen, führt im Endeffekt aber nur dazu, also reporten kannst du auch in dem Content Security Policy Header, sowieso schon, also da brauchst du den Report Only Header nicht, der ist wirklich nur, der macht genau das gleiche, nur dass er halt aber alles durchlässt.
Okay, ich wusste nicht, dass man da reporten kann, das war mir tatsächlich neu, weil es finde ich tatsächlich interessant, weil man dadurch eventuell mitkriegt, was wird denn so versucht.
Richtig, genau, also gerade, wichtig ist es glaube ich vor allem auch für User Generated Content, also du hast eine Seite, also zum Beispiel, ja sowas wie CodePen oder so, weil da willst du ja definitiv User Content ausführen, also auch wirklich Scripting und so weiter.
Und du willst halt vielleicht nicht, dass da bestimmte Dinge ausgeführt werden, die dann am Schluss die Seite kapern können oder Usern irgendwie vorgaukeln, du loggst dich jetzt hier ein und ist aber gar nicht.
Und dementsprechend werden die, das habe ich jetzt gar nicht untersucht, aber die werden mit Sicherheit einige Content Security Policies gesetzt haben, kannst du ja vielleicht mal nebenher gucken.
Ja, das werde ich gucken.
Und ich habe das in dem Fall, habe ich das über die HT Access Datei gelöst, weil das da einfach am schnellsten ging, statt da irgendwie, weil es war auch wieder WordPress Kontext, das heißt, anstatt sich da dann in den Header reinzuklinken und zu sagen, hier setzt die Header und zu gucken, wo sind die Header aber noch nicht abgeschickt zu dem Zeitpunkt, habe ich das einfach in der HT Access gemacht.
Also Header, always send oder always, ja doch, always set heißt das, glaube ich. Und dann kann man das eben angeben, kann dann sogar noch mit einer gewissen Syntax beeinflussen, dass das nur für bestimmte Content Types gilt, also nur für JavaScripts und HTML Seiten, also Text HTML, wie ich das ausführen lassen.
Und dann ist mir aufgefallen, okay, das wird ziemlich lang, wenn ich da diese ganzen Optionen reinschreibe, weil man kann da wirklich unzählige Sachen eintragen und dementsprechend unübersichtlich wird das und man kann aber in einem Header Attribut oder in dem Wert von dem Header kann man eigentlich keine Line Breaks drin haben.
Und dann habe ich gelernt, in HT Access kann man Line Breaks machen, indem man die Zeile mit einem Slash beendet, also Backslash und einen Line Break macht und dann wird das vom Server aber als Line Break erkannt, der nur optisch ist und wird in dem Header dann richtig ausgegeben.
Und so kann man dann diese einzelnen Attribute, die man da setzt, dann doch recht übersichtlich darstellen, weil das war erstmal so, okay, wer soll das so noch lesen können am Schluss?
Ich kenne das Problem, wir haben das bei uns auch und bei uns haben wir das, glaube ich, wenn ich es richtig weiß, mit einem Python-Package gelöst, das sich darum kümmert und dann kannst du es auch relativ übersichtlich aufschreiben, weil diese eine Zeile ...
Wenn der Bildprozess ist, der haut dann am Schluss dann die HT Access raus.
Ich weiß gar nicht genau, ob der, vielleicht schreibt der auch direkt die Header, da bin ich mir nicht sicher.
Naja, also ich habe jetzt gerade mal geguckt bei CodePen, Content Security Policy, also das heißt, wenn ihr das mal, wenn ihr vielleicht gar nicht wisst, was das ist oder wie man da hinkommt, wie man das sich angucken kann, geht in die Dev-Tools, ich habe jetzt gerade CodePen aufgerufen, das Demo-Pen von mir,
dann geht ihr in die Dev-Tools, in Chromains beispielsweise, auf den Network-Tab und dann auf das HTML-File, also den ersten Request, den es da gibt,
klickt da drauf und dann geht rechts so eine, rechts nochmal so ein Bereich auf mit Response Headers, also nicht nur, aber auch die Response Headers, das ist das Interessante.
Und da steht, ist einer davon, der vorne heißt Content Security Policy und da ist jetzt bei CodePen ein sehr, sehr, sehr langer Block drin.
Also soll ich mal vorlesen?
Also ich muss nicht alles vorlesen, ich fang mal an.
Also Default-SRC-SELF, Semikolon, Base-URI-SELF, Semikolon, Block-All-Mixed-Content, Semikolon, Connect-SRC-Blob, Doppelpunkt, Stern, Semikolon, Font-SRC-Data, Doppelpunkt, Stern, Semikolon und so weiter.
Und das war jetzt die erste Zeile von sieben.
Okay.
Da geht's noch ordentlich rein.
Oh, jetzt haben wir gerade heftiges Knacksen, ich hoffe, das ist in der Aufnahme nicht drin.
Ich habe nichts gehört.
Okay, wir gucken mal, wie es rauskommt.
Also man merkt schon, da ist unheimlich viel drin, also wenn man, ich verlinke das natürlich auch in den Shownotes, die MDN-Seite dazu, die ist relativ lang und das sind eigentlich nur eine Liste an Keywords und was die eigentlich machen.
Also vielleicht gehen wir mal so die wichtigsten kurz durch, ohne jetzt zu arg ins Detail zu gehen.
Also ich muss eh sagen, ich bin jetzt nicht der absolute Experte, was das angeht.
Ich mache das jetzt erst in diesem Kontext von diesem Projekt und habe mich da relativ kurzfristig eingelesen.
Also das ist eigentlich jetzt weniger ein, ich erkläre euch, wie das funktioniert und mache hier Sicherheitsberatung, sondern mehr ein, ich teile meinen Leidensweg und meine Erfahrungen mit euch.
Das ist doch auch schön.
Genau.
Ich bin auch kein Experte, ich habe schon ein bisschen was damit zu tun gehabt.
Genau, also was machen wir denn hier als erstes?
Default-SRC war das genau.
Damit kann ich für verschiedene von diesen SRC-Eigenschaften, also Font-Source, Frame-Source, Image-Source, kann ich ein Default erstmal festlegen.
Also standardmäßig sagen, wenn irgendwas in irgendeiner Form von Dritt-Content oder generell einfach eingebunden wird in die Seite, dann kann ich bestimmen, Self heißt immer nur auf dieser Domain.
Oder ich kann tatsächlich sagen, HTTPS, Doppelpunkt, Doppelslash, entweder kann ich nur das Protokoll stehen lassen, dann sind sämtliche Seiten im Secure-Kontext erlaubt.
Oder ich kann wirklich Domains eingeben, auch mit einer Wildcard, also Sternchenpunkt, wo wir sind, ist vorne.show, würde auch die Subdomains durchlassen.
Und kann dann halt sagen, okay, also Bilder, das wäre dann in dem Fall natürlich EMG-SRC, also immer mit Bindestrich getrennt, dürfen nur von WWSIV selbst kommen.
Frame-Inhalte dürfen aber auch von anderen kommen, weil, also Frame-SRC ist dann für Frame- und iFrame-Elemente, weil ich möchte vielleicht eben Google Maps in eine MyFrame einbinden oder irgendeine andere Seite.
Font-SRC, ähm, so könnte ich zum Beispiel sicherstellen, wenn ich den Hader setze mit Font-SRC, dass keine, da hatten wir es ja jetzt auch drüber, dass keine Fonts von Google-Fonts angezogen werden.
Ne, und so könnte ich das unterbinden, ohne dass ich jetzt erstmal bei den Seiten, also wenn ich jetzt irgendwie sage, ich hab, ähm, ich hab 200 Kunden-Webseiten, die drohen jetzt grad alle abgemahnt zu werden, ich hab, aber ich kann jetzt aber mich nicht zerreißen und ich kann jetzt nicht in möglichst kurzer Zeit für alle Kunden gleichzeitig die Systeme so updaten, dass die Fonts lokal gehostet sind.
Ich möchte aber auf Teufel komm raus verhindern, dass irgendeiner von denen abgemahnt wird und das ist mir wichtiger, dass die nicht abgemahnt werden, als dass die irgendwie kurzzeitig hässliche Fonts haben.
Das heißt, ich könnte serverseitig, äh, serverweit setzen, wenn die alle auf einem Server liegen, ähm, setze diesen Content-Security-Policy-Header, äh, und setze Font-SRC auf Self und sobald das aktiviert ist, würden die, also in Clients, die das unterstützen, aber das sind halt heutzutage die, die meisten, ähm, würden dann keine Requests mehr auf Fontfalls zugelassen werden.
Dann haben die halt erstmal hässliche Fonts, aber sie greifen nicht mehr auf Server zu, wo sie vielleicht eventuell abmahnfähig sind.
Ähm, und so kann ich das, also ich glaub, das ist wirklich, wie du auch vorhin gesagt hast, in größeren Kontexten spielt das eher eine Rolle, als ich bin eine kleine Frickelbude und mach grad für ein Verein eine Website, ja.
Eigentlich blöd, weil, äh, wenn du jetzt ein sinnvolles Set gesetzt hast an Content-Security-Policies vom Server vielleicht aus schon direkt, ne, ähm, warum nicht, und wenn du dann halt, wenn du dann halt gegen, gegen, äh, ein Problem läufst mit, du darfst jetzt hier irgendwas nicht einbinden, das siehst du ja in den Dev-Tools eigentlich ganz gut.
Also, ich weiß ganz genau, was passiert, wenn du gegen so eine Policy verstößt, dann kriegst du, äh, in der, in der Konsole eine Meldung angezeigt, ja, dieses File, das hat's versucht zu laden, aber das verstößt gegen die Content-Security-Policies und so.
Oder eben zusätzlich, wenn du dir dieses Reporting aktivierst, dann kriegst du sogar, was auch immer du möchtest, eine E-Mail, kannst du dir damit rausschicken, oder du loggst das einfach in eine Datei, oder du machst das in der Datenbank, oder du nutzt, das gibt natürlich entsprechende Services, die dir das aufbereiten, ähm, da komm ich auch noch dazu, das, ähm, oder kann ich eigentlich jetzt schon, also, es ist ja relativ viel, ich geh mal ganz kurz noch auf die Attribute.
Also, ähm, Media-Source kann ich noch setzen für Audio-, Video- und Track-Elemente, Object-Source für Object-Embeds und Applets, wenn man die auch immer noch nutzt, ähm, Script-Source kann ich beeinflussen, ähm, bei den Scripts ist es auch noch so, äh, dass, dass, wenn ich jetzt nur Self setze, dann gelten Inline-Skripte zum Beispiel nicht, weil das könnte ja jemand in, in, in User-Generated-Content, ein Script-Tag einfach einbauen, das würde ausgeführt werden.
Bei uns, das haben wir zum Beispiel bei uns aktiviert, dass du das nicht darfst, Inline-Skripte, und da bin ich jetzt grad die Tage drüber gestolpert, als ich schnell mal was einbauen wollte, äh, mit, und hab gedacht, naja, komm, das hack ich irgendwie schnell mit On-Click rein, um's auszuprobieren.
Ah, nee, geht nicht.
Genau, also On-Click geht da nicht und Inline-Skript-Tags gehen auch nicht. Und das war bei uns in dem Kontext ein Problem, weil WordPress, das spielen so viele, ne, irgendwelche Plug-Ins mit oder halt WordPress, ah, oder irgendwelche Skripte rein.
Also schon die, die Lokalisierung, äh, basiert ja darauf, dass da ein Script-Block drin ist, der dann ein Global-Objekt setzt mit, mit Language-Strings drin und so.
Wenn du das aktivierst, wird's alles nicht mehr geladen. Und das ist doof, ja. Und, äh, dementsprechend mussten wir das aushebeln und das kann man dann, wenn man, es gibt auch bestimmte Keywords, statt jetzt irgendwie URLs oder Protokolle zu setzen, unsave, äh, was war's, unsave, inline.
Also unsave-inline als Keyword, das erlaubt eben dann auch Inline-Skripts. Und dann gibt's noch unsave-evil, ne, evil ist evil. Ähm, aber manchmal braucht man's vielleicht doch und es ist halt gerade so, ähm, also ich glaub, jQuery hat zum Beispiel, benutzt intern eval.
Weil, evil ist ja immer nur evil, wenn ich tatsächlich User-Eingaben da einfach durchjage. Wenn ich aber weiß, was, was da reinkommt und völlig ausgeschlossen ist, dass das User-Eingaben sind, dann ist es ja, ne.
Vielleicht musst du noch kurz erklären, was evil ist.
Evil nimmt einen String und wertet den als Code aus. Also gibt's bei PHP, gibt's bei JavaScript, gibt's bei sicherlich vielen anderen Sprachen auch.
Genau, deswegen sagt man auch oft, evil ist evil.
Genau, weil wenn ich jetzt irgendwie, also wenn ich, wenn ich evil habe und ich setze das um eine Post- oder Get- oder Request-Variable außenrum, dann hab ich ein Problem.
Ja, ähm, und deswegen kommt das halt dieser, dieser schlechte Ruf, ähm, ja. Und man sollte es auch vermeiden, wo es geht, aber es gibt, gibt auch Einsatzzwecke, wo's, wo's in Ordnung ist, das zu benutzen.
Aber gut, die müssen wir jetzt nicht hier auch noch erläutern.
Genau, dann gibt's noch Style-Source kann ich machen. Ich kann für Worker, kann ich eine Source, ähm, äh, aktivieren. Die Base-URL, wenn man tatsächlich noch einen Base-Tag nutzt, was heute auch seltener vorkommt, ähm, und so weiter. Form-Actions kann ich beeinflussen. Ähm, und ich kann eben ...
Stehen noch alle, interessanterweise, hier in dieser, äh, CSP von, äh, von CodePen. Ich liest sie quasi nach der Reihe vor, wie sie da drin stehen, ja.
Dann gibt's noch, ähm, also das sind jetzt so die, die, die ganzen Source-Geschichten, also das ist hier auch auf MDN schön übersichtlich, ähm, unterteilt, nach solchen Fetch-Directives, also eben alles, was irgendwie reingeladen wird.
Ähm, dann gibt's noch andere Directives, also, ähm, was haben wir hier noch? Äh, Trusted-Types, okay, das ist auch alles experimentell. Aber irgendwie so Block-All-Mixed-Content zum Beispiel.
Also ich, dass ich sage, in der HTTP- oder in der HTTPS-Seite darf kein HTTP-Content drin vorkommen. Da werfen die Browser eh schon Meldungen und blockieren das auch teilweise, ähm, aber damit kann ich halt wirklich sagen, es wird alles geblockt, was, was irgendwie Mixed-Content ist.
Mhm.
Ähm, Plug-in-Types, Referrer, die Referrer-Policy kann ich da irgendwie noch beeinflussen.
Und so weiter, also, wenn man das tatsächlich braucht, sollte man sich das einfach mal durchlesen, ähm, und dann gibt's eben noch, äh, dieses Report-To, und da spreche ich gleich noch drüber, ich muss es nochmal ein bisschen verschieben, weil ich erst noch vorher sagen wollte, wenn man da den Überblick nicht hat und das auch nicht alles selber schreiben will, es gibt einen tollen Generator, den packe ich auch in die Shownotes.
Und der ist, äh, eben von so einem Anbieter, der eben dieses Reporting auch anbietet, report-uri.com, ähm, und da kann man sich das eben zusammenklicken, auch mit so einem Infotext, wenn man da draufklickt, äh, View-Info, dann wird einem nochmal erklärt, was, was ist auch mit Beispielen, was für Werte ich da eintragen kann. Also der war sehr hilfreich, um erstmal recht schnell auf irgendwie so ein Set zu kommen an, an Werten, die ich da haben will.
Ich seh's grad in dem Generator, der hat ja 24 Unterpunkte.
24 Unterpunkte, genau, und dann kannst du da aber halt, ne, das ist schon cool gemacht, also View-Info und dann siehst du genau eine URL mit Wildcard oder nur ein Port oder und so weiter und diese Keywords, die du setzen kannst, also das ist schon, ja, recht übersichtlich gemacht, da muss man das nicht alles selber tippen.
Oder das ist zumindest mal gut als erster Anhaltspunkt und dann hab ich's eben händisch noch ein bisschen erweitert und angepasst.
Und die, die offerieren, also das ist auch völlig kostenlos, also wir werden auch nicht gesponsert von denen und, ähm, die haben auch einen CSP-Analyzer, da gibt man die URL an zu einer Seite, ähm, und dann kriegt man da so ein Rating, äh, und warte mal, ich mach mal hier, ups, jetzt haben wir ein Tier verschüttet, wo wir sind.
Oh Gott.
Show.
Ja, aber nicht in die Tastatur zum Glück.
Das müssen, nee, das, nee, das meine ich nicht, ich meine, das da eigentlich.
Ja, so, unsere, äh, unsere Seite.
Das ist ja absolut unsafe.
Ja, gut, aber wir haben halt auch keinen, keinen Fremd-Content, außer die Kommentare und da kümmert sich überhaupt was drum.
Ja.
Ja, irgendwie analysiert sich's jetzt hier auch gerade tot, aber gut.
Ist jedenfalls ganz praktisch, um mal zu gucken, so, wie schneidet meine Seite ab und was kann ich vielleicht machen, damit das ein bisschen, ein bisschen besser ist.
So, und jetzt zu diesem, äh, also erstmal war das natürlich schon ein Rabbit Hole an sich.
Und dann bin ich eben auf dieses Report-URI gestoßen und das hab ich in dem Fall nicht gebraucht für den Kunden, aber es hat mich einfach interessiert.
Aha, wie funktioniert das dann? Und was, was wird denn da genau reportet und wie, wie funktioniert das?
Also war das das nächste, der nächste Gang, in den ich mich begeben hab.
Und, ähm, hab dann gleich mal gesehen, Report-URI ist eigentlich deprecated und man soll jetzt Report-2 nutzen und in diesen ganzen Specs steht auch, clients should not use Report-URI.
Ja, das Lustige ist aber, dass Report-2 halt irgendwie noch nirgends unterstützt wird.
Ja, super.
Also Safari und so kann das nicht.
Ähm, Chrome kann's angeblich.
Aber, naja.
Es hat, also ich hab's nicht zum Laufen gebracht und es gibt auch ein Chromium-Bug-Ticket dazu, dass es irgendwie nicht funktioniert, weil irgendwelche Course-Header dann auch reinfunken.
Aber bei mir war's lokal in der Entwicklungsumgebung, ähm, gleiche Domain, gleiches Protokoll, alles und trotzdem hat's mit Report-2 hat's nicht funktioniert.
Und Report-URI ist eigentlich ganz einfach.
Ich geb das an, als, ähm, als, ähm, als mögliches Attribut von diesem Header und hinten dran einfach eine URL zu einem Skript oder einem Endpoint.
Ähm, das heißt, ich hab in dem Fall einfach eine PHP-Datei genommen und übertragen wird das Ganze als, ähm, Body von diesem, von einem Post-Request und da ist einfach JSON drin.
Das heißt, ich hab dann per PHP gesagt, ähm, über php-doppel-slash-Input kann man sich ja den, den Request-Body holen, ähm, den dann JSON-D-Code und dann kann ich da alles auslesen, welche URL wurde geblockt, was war der Grund dafür, welche Policy ist dafür zuständig, das kriegt man da alles mitgeteilt.
Das ist eigentlich echt, echt ganz cool. Ähm, geht halt, wenn man jetzt ein eigenes kleines Projekt hat oder vielleicht auch eine Entwicklungsumgebung und nur selber diese Reports triggert, ist das noch recht übersichtlich.
Wenn ich jetzt irgendwie, ne, an eine Seite denke von deiner Firma, ja, also, ähm, das sind ja dann Millionen, ähm, Meldungen, also, das kann man nur maschinell auswerten am Schluss noch, ja.
Ja, ja.
Und du musst wahrscheinlich aber auch schon, musst wahrscheinlich ins Rechenzentrum ein extra Server-Rack stellen, das überhaupt diese Requests annimmt.
Also, ich habe dann tatsächlich auch ein fertiges Skript gefunden in PHP, das ich dann angepasst habe, äh, das genau das macht und dann auch noch gleich eine E-Mail verschickt, wo das dann alles schön drin formatiert ist, ähm, und für so, für selber zum Testen ist das in Ordnung, aber, äh, ja, wie gesagt, im großen Umfang würde ich mir das nicht antun, ohne entsprechende Auswertungs-Maschinerie hinten dran zu haben.
Aber war, war mal ganz interessant zu sehen, wie das, wie das funktioniert.
Ähm, was ich dann interessant fand bei diesem Report 2, da ist das ein ganzes bisschen komplexer und zwar übergebe ich in dem Header als Wert einen, einen, äh, JSON-String, also, das ist ein JSON-Konfigurations-Objekt, das da in den Header gesetzt wird, das fand ich irgendwie ein bisschen schräg.
Beziehungsweise, genauer gesagt, es ist eine Komma-Separierte Liste aus, äh, JSON-Objekten in String-Form.
Okay.
Ja, und da kann ich dann sagen, okay, ich habe hier eine, eine Report-Group, die hat den Namen XYZ und folgende URLs, also ich kann dann auch Backup-Server-URLs eingeben, falls einer irgendwie down ist zum Beispiel.
Und dann kann ich eben bei, ähm, mit dem Report 2, nicht mit dem Report 2 Header, sondern mit dem Report 2 Value für den, für den CSP-Header, ähm, kann ich sagen, anstatt irgendwie, also bei Report URI gebe ich die URL an, direkt zu dem Skript, bei Report 2 gebe ich eben diesen Gruppennamen an, den ich in diesem JSON-Objekt definiert habe, in dem anderen Header.
Und der, der sucht sich dann automatisch, da sucht der Client sich dann raus, okay, welche Server sind da drin und dann nimmt es einen davon.
Ähm, also es ist ein bisschen flexibler, gerade eben um, um höhere Skalierbarkeit zu schaffen, ähm, aber ich fand es irgendwie schräg, da, äh, JSON mitzuschicken.
Und ich bin da anscheinend auch alleine, also die, die sich ausgedacht haben, haben dann gedacht, hm, das ist ja voll der Overhead, weil ich meine, das macht ja tatsächlich jedes Request, Request, das mit dem Header kommt, entsprechend groß.
Und wenn ich sehr viele von den Servern habe, weil ich halt irgendwie, keine Ahnung, tausend Endpunkte habe für, für über die ganze Welt verteilt oder so, ähm, dann ist das ja ziemlich viel.
Deswegen kann man in diesem Konfigurationsobjekt auch noch einen, einen Timestamp quasi angeben, wie lang das gültig ist und dann muss ich diesen Header nur noch so lange, wie dieser Timestamp gilt, dann muss ich den nicht mehr mitschicken.
Also müsste ich mir das quasi merken, für welchen Client habe ich das ausgesteuert und dann casht der nämlich diese, also das ist echt verrückt.
Der cached dann diese URLs und dann, ja.
Das haben, also es klingt sehr, sehr überspezifiziert.
Total, ja.
Und dann halt auch so, na, wir haben das jetzt umbenannt und man soll das jetzt nicht mehr nutzen, das ist jetzt alt, ja, aber es unterstützt auch noch niemand was anderes.
Also nutze am besten beides.
Wenn du das machst, sagt aber Chrome, ähm, aber ich hab die Regel jetzt in, also das war bei dem anderen, das war jetzt gar nicht bei dem Report, aber das war bei dem anderen, was ich, was ich später noch, äh, sagen werde.
Und da war dann irgendwie, ja, okay, ich hab beide Header erkannt, aber ich bevorzuge jetzt den und den.
Und das steht halt dann jedes Mal in der Konsole drin.
Also ich find's ja irgendwie so, ich komm ja nicht drum rum, das zu machen, weil sonst unterstütze ich nur die Browser, die das haben und das sind nicht alle.
Ja, es ist so ein bisschen, das meinte ich vorhin, es ist alles irgendwie, es wirkt so nicht so ganz, ähm, ja, nicht so erprobt und nicht so, nicht so feinpoliert.
Weil es halt irgendwie, es ist halt unter der Oberfläche und es sind nicht viele Menschen, die sich damit beschäftigen und deswegen ist es alles so ein bisschen, mmh.
Eigentlich blöd, man würde sich für sowas eigentlich wünschen, dass es so eine Art Standard gibt.
Ja, na gut, den gibt's ja, der wird aber irgendwie da neu geschrieben.
Nee, nee, ja, okay, gut. Das hatten wir ja in der letzten Folge auch schon.
Ja.
Wir müssen mal einen vernünftigen Standard machen, um alle Standards zu vereinigen und dann gibt's einen mehr.
Nee, ich meinte, ich meinte, es ist ein bisschen anders, nicht im Sinne von, ähm, ein Standard von dem, äh, von den CSPs oder so, sondern, äh, oder dem Reporting, sondern, dass es, dass es, dass es, dass das weiter verbreitet ist, dass Server standardmäßig ein bestimmtes Set einfach eingestellt haben, das relativ restriktiv ist.
Äh, also, natürlich, das ist natürlich die Serverbetreiber oder, ja, die, die, die Rechenzentrenbetreiber, die, die, die halt, oder zumindest die, die Software, die setzen verantwortlich.
Ja, aber wenn du, ah, ich weiß nicht, also standardmäßig einschränken, weil dann hast du das Problem wieder, die Leute installieren halt irgendwie WordPress drauf und das versetzt irgendwie voraus, dass du das kann und dann musst du den Leuten wieder Zugang geben, dass die, die in ihrem, in ihrem, in ihrem Serververwaltungs-Backend dann die Header beeinflussen können und so.
Ah, weiß nicht.
Ja gut, aber ich mein, jetzt machst du doch nichts anderes, nur, dass du halt jetzt Security-Header setzt, die vorher nicht da waren und andersrum werden halt welche da und du kannst sie wegnehmen.
Ja, aber das machen halt auch eher Leute, die technisch ein bisschen tiefer drin sind und nicht Alicia Müller, die ihren WordPress-Blog aufsetzt.
Ich würd aber halt sagen, es ist besser, du hast ein, ja, aber ich mein, es ist so, wie man, Security kommt halt, ist halt nicht kostenlos.
Ja, ja.
Und ich denke halt, also, das ist, ha, it comes at a price, hatte ich halt gerade im Kopf, also, das ist nicht kostenlos, das ist eine völlig blöde, bescheuerte Besetzung dafür.
Egal, aber ich glaube, es wäre sinnvoller, wenn so ein bestimmtes Standard-Set an CSPs einfach immer gesetzt ist und wenn du da dran stößt an das Problem, und das gibt es ja an anderer Stelle auch, dieses WordPress-Plugin geht jetzt hier, bla, nicht aus diesem und diesem Grund, dann wirst du irgendwo einen Artikel finden, wo du erklärt kriegst, na, da musst du das und das einschalten.
Aber generell irgendwie einen Server erst mal safe zu machen und zu sagen, hey, du darfst erst mal nichts Externes einbinden oder so und falls du das doch probierst, dann vielleicht dieses Reporting einfach schon an und dann, weil, dann kriegt der ja mit, wenn da irgendwie eine Million mal dieses eine Ding da fliegt.
Da habe ich gerade eine Idee.
Wenn da eine Million mal das Ding fliegt, ja, okay, du musst mich finanziell dran beteiligen, danke schön.
Nee, nee, nee, nee, nee, nee, nee, das ist tatsächlich jetzt mir eingegeben, zwar in dem Kontext, aber, äh, mein, mein, mein, Spalt.
Dann könntest du ja, dann könntest du ja, dann könntest du ja, äh, ja, ja, das sagen sie immer, ähm, dann könntest du ja, äh, hingehen und sagen, äh, auch in, in dem Admin-Frontend oder so, dann sagen, ja, du, da ist jetzt das ziemlich oft geflogen und wir glauben, das ist das, deswegen, ähm, du kannst das hier einschalten, wenn du dir ganz sicher bist, äh,
äh, aber, äh, überleg lieber, ob du nicht die Software anders schreibst oder sowas.
Oder ob du die Fonts nicht lieber runterladen willst und bei dir direkt hinlegen willst, sowas, ne? Also, ähm, da könnte man ja clevere Hilfe anbieten.
Man muss ja auch nicht, man muss ja auch nicht alle setzen, ja, tatsächlich, also, ne?
Aber klar, also zum Beispiel, wenn man jetzt sagt irgendwie, okay, auf deutschen Servern setzen wir als deutsche Hosts eben Font-Source auf Self, so.
Und dann, äh, werden schon mal, dann kann niemand mehr abgemahnt werden, der bei uns Kunde ist.
Genau, außer du machst, weil du machst ja dann vielleicht auch den Ärger, dass dann der Kunde kommt und sagt, ja, warum habt ihr dann nicht, ne, ihr seid schuld und, äh, ich muss jetzt hier Schadenersatz zahlen und dann müsst ihr zahlen, so.
Außer ganz bewusst, außer jemand schaltet es ganz bewusst ein.
Genau, genau.
Dann ist er natürlich auf jeden Fall selbst schuld.
Wenn er sich auskennt, kann er natürlich sagen, okay, ähm, ich überschreibe das wieder, ja.
Ja, ich kann mir vorstellen, dass sich da ein paar Leute am Kopf kratzen, aber das ist bei ganz vielen Dingen so im Internet und bei der Webentwicklung.
Ich finde es gerade beim Thema Sicherheit immer und mich hat es sehr erinnert an, ähm, die Adaption, beziehungsweise,
nicht Adaption von PGP, also End-zu-End-Verschlüsselung bei E-Mails.
Ähm, auch ich nutze das nicht, privat.
Wir haben es bei unserem Firmenaccount, bei manchen Sachen, aber mir ist es auch zu komplex und irgendwie hat man das Gefühl,
versteht ja selbst in Technikkreisen eigentlich keiner so ganz, außer so diesen richtigen Hardcore-Security-Freaks.
Ähm, und dementsprechend macht's keiner und irgendwie bringt's nix, außer dass, dass man ständig irgendwelche, äh, PGP-Key-Anhänge an Mails hat, die die Leute irritieren, wo dann wirklich schon zurückgeschrieben wurde, ja, ich kann den Anhang nicht eröffnen, was ist das denn, ja, und so.
Und ich verstehe einfach nicht, es ist ja eigentlich so wichtig und es wäre so schön, wenn wir alle verschlüsselt miteinander kommunizieren würden und klar, die PS hat es mit, wenn ich im Web-Client unterwegs bin und so, ne, ist ja auch, aber auf dem Server könnte's halt wieder entschlüsselt werden, ne, also End-zu-End-Verschlüsselung wäre so schön.
Warum gibt's da immer noch keine einfachen Lösungen? Also ich, ich aktiviere, ich registriere meinen Account bei Gmail, bei Web.de, bei GameX, bei wo auch immer und ich kriege automatisch das schon irgendwie eingerichtet und eine kurze Erklärung, was ich machen muss.
Oder, oder zumindest gesagt, hier, proaktiv deaktivieren, wenn du dich nicht damit auseinandersetzen willst. Klar, die Hürde wäre zu groß, ne, für so eine Firma, ne, dann rennen Leute wieder weg, aber.
Ich kenne da so einen großen, einen großen E-Mail-Anbieter, ähm, aus, aus Deutschland, ähm, bei dem ist das so. Bei dem hast du diese Möglichkeit. Du musst allerdings, du kriegst es nicht direkt vor die Nase gehalten, aber wenn du in den Einstellungen danach suchst, dann findest du das und da hast du das.
Und dann ist das fest integriert. Und zwar die Magie, die dahinter steckt, ist ein Browser-Plugin namens Mail-Velob, ähm, das, das du dafür verwenden musst. Das macht nämlich dann die echte Ende-zu-Ende-Verschlüsselung. Das sorgt dann dafür, dass in die Keys hinterlegt und das entschlüsselt und verschlüsselt dir die Dinge.
Also das, das ist mittlerweile, ich will nicht sagen, dass es schon richtig benutzerfreundlich sind, im Sinne von, äh, ist im Sinne von, äh, es kann einfach jeder jetzt einfach so benutzen.
So wie zum Beispiel bei einem Messenger wie Signal oder so, der das einfach, ich weiß nicht genau, wie die das technisch machen, aber offenbar werden da Keys ausgetauscht.
Ähm, und bei Signal ist, soweit ich weiß, von Ende-zu-Ende-Verschlüsselung. Ich glaube, bei WhatsApp mittlerweile ja auch. Also Messenger machen das ja schon. Und wer schreibt denn heutzutage noch E-Mails, jetzt mal ganz ehrlich?
Ja gut, vielleicht, vielleicht ist es wirklich so, ne, das Thema, E-Mail ist schon fast tot und deswegen.
Ich glaube, ich glaube, naja, ich würde nicht sagen, E-Mail ist tot, aber E-Mail zur Kommunikation.
Ja, aber gerade bei Behördenkommunikation ist es ja jetzt erst dabei, das Fax abzulösen, ja.
Du glaubst doch nicht, dass Behörden in den nächsten zehn Jahren, äh, per Messenger mit End-zu-End-Verschlüsselung kommunizieren werden.
Die Audiobeschreibung, Moritz legt seinen Kopf auf das Mikrofon, weil er einfach nicht mehr kann.
Ne, also, ja, es ist halt echt traurig, ne, aber es ist halt, also auch zum Beispiel Gerichte und sowas, die, die sind heute immer noch auf Fax.
Also, ne, selbst das Fax ist da noch nicht tot.
Die E-Mail, die E-Mail, das habe ich gehört, das ist total im Kommen.
Ähm, gut, hm, jetzt, wo haben wir uns da jetzt rein manövriert?
Ja, also, es geht noch weiter, ich nehme euch mal mit in den nächsten Gang, das, das Hasenbaus.
Sehr gut.
Feature Policy ist der nächste Header.
Also, Feature minus Policy und dann bin ich da drauf.
Den kenne ich tatsächlich nicht.
Und das Erste, was mir da entgegen strach, war eine Warning.
The Header has now been renamed to Permission Policy.
And this article will eventually be updated und so weiter.
Und es ist halt auch tatsächlich so, dass dann wieder die meisten Browser, oder ich muss mal gucken auf Can I Use, ähm, Can I Use, die unterschützen halt noch Feature Policy und diese Umbenahmung hat irgendwie halt, glaube ich, noch keiner gemacht.
Also, Permission Policy oder Permissions Policy, da ist zum Beispiel in Chrome und Edge, ähm, only support the HTTP Header, okay.
Partially supports, also den Vorgänger.
Also, man kann im Endeffekt Permission Policy, Permissions Policy noch nicht wirklich nutzen, man kann es aber beides nutzen gleichzeitig und dann kriegt man eben in Chrome, das war das, was ich vorhin meinte, dann kriegt man die Ansage hier, ähm, das kommt in beiden vor und deswegen wird das in dem Header ignoriert.
Ja, dann dachte ich, ja, ist ja kein Problem, ich mache einfach, ich mache das beides und nenne es einmal Feature Policy und einmal Permissions Policy, aber nein, die haben sich gedacht, na, wenn wir das Ding jetzt schon umbenennen, dann können wir ja auch gleich die Spezifikation ändern, wie, wie die Werte da drin aufgebaut sind.
Ah, sehr schön.
Weil, weil wir machen es dann nicht so, wie bei Content Security Policy und wie bei Content Security Policy Report, dass wir dann die Attribute, äh, einfach, in der Kolon getrennt hinschreiben und hinter dem Attribut kommt direkt der Wert, sondern da machen wir es dann mit Attribut ist gleich Wert.
Und machen noch eine komische Short Notation, wo ich dann irgendwie mit Klammer auf Klammer zusagen kann, äh, der wird auf, auf False gesetzt.
Also es ist schon wieder was anderes und das habe ich auch nicht irgendwie dokumentiert gefunden, weil es ist halt noch relativ neu.
Also musste ich erstmal gucken, wie mache ich das jetzt, dass es da funktioniert und da funktioniert.
Und, äh, ja, was macht das eigentlich, Feature Policy?
Oder Permissions Policy?
Ich weiß jetzt gar nicht, wie ich es besprechen soll, so wie man, wie man alle Beispiele noch findet und so wie es funktioniert oder so wie es in Zukunft heißen wird.
Ich nenne es jetzt, glaube ich, einfach Feature Policy und ihr müsst einfach daran denken, das ist das gleiche wie Permissions Policy, falls euch das über den Weg läuft.
Also genau, ein unbenannt und eine andere Syntax.
Aber was mir positiv aufgefallen ist in den Chrome Developer Tools, ähm, eine gute Developer Experience.
Und zwar hatte ich nämlich ein Semikolon vergessen und dann war quasi der Attributname als Wert von dem vorausgehenden Attribut mitgesetzt, ne?
Und dann kam tatsächlich in den DevTools, ah, ich hab hier einen Attributnamen gefunden als Value, ähm, bist du dir sicher, dass du nicht ein Semikolon vergessen hast?
Und das fand ich mal echt, echt cool und sehr hilfreich.
Und, äh, hat, hat direkt geholfen, einen Fehler zu, zu fixen, der mir sonst niemals aufgefallen wäre.
Also ich hätte das gar nicht bemerkt, weil du kriegst ja kein direktes Feedback, wenn du nicht jetzt gerade versuchst, diese Permission zu nutzen.
Ähm, und dementsprechend war das echt cool und das fand ich schön.
Und also so stelle ich mir das vor, wenn ich entwickle und ich mache einen Fehler, dass mir gleich gesagt wird, hey, das ist eventuell falsch und, äh, guck doch mal.
Wie heißt denn nochmal, wie heißt denn nochmal dieser, dieser Checker, dieser Seiten, Webseiten-Checker von Microsoft?
Weißt du das noch?
Noch, weiß ich nicht.
Es gibt so ein, es war nicht Webpage-Test, so ähnlich, keine Ahnung, war ganz nett gemacht.
Weil die haben, die testen da auch eine Menge Security-Sachen und auch so CSP testen die da.
Erinnere ich mich, ich weiß noch nicht, wie das steht.
Vielleicht finden wir es noch, dann fragen wir es nach.
Ja, ich gucke, ich gucke gerade die ganze Zeit, weil, ja, ich gucke nebenher, weil das, ähm, das fand ich echt, da fand ich es nett gemacht und da sind tatsächlich viele Security-Checks, inklusive CSP, war da mit dabei.
Aber jetzt kommen wir erstmal zu, genau, was, was, was ist gemeint mit diesen Features? Und da geht es tatsächlich um so Sachen wie Accelerometer, Meter, also, ähm, den Beschleunigungssensor nutzen dürfen, Ambient Light Sensor, Autoplay, also dürfen Videos Autoplay nutzen oder nicht.
Oha.
Battery, kann ich Batterie-Informationen nutzen?
Das ist etwas, was, okay, wusste ich, das ist total nützlich.
Mega gut.
Display Capture, ähm, Encrypted Media, dafür irgendwie verschlüsselte, ne, mit so einer Encrypted Media Extensions.
API, dürfen die angezogen werden.
Fullscreen, darf ich Fullscreen, äh, nutzen?
Ähm, Gamepad, okay, ob auch ein Gamepad benutzt werden darf.
Geolocation, Gyroscope, ähm, irgendwelche Layout Animations und so weiter, das kann ich alles über diesen Header steuern, ob der Client da Zugriff drauf hat in dieser Domain oder nicht.
Ja, auch da würde ich mir wünschen, erstmal generell alles ausschalten.
Access, ja, USB, Payment Access, äh, Oversized Images, aha, whether the current document is allowed to download and display large images, okay, public key credentials und so weiter und so fort.
Äh, äh, Synchrones XHR, ob das ausgeführt werden darf oder nicht.
Also XHTML, HTTP Request, ähm, was gibt's noch, USB-AP, genau, da hatten wir's auch mit, äh, mit Nerd Disco drüber.
Äh, Screen Wake Log, also lauter so, so eigentlich auf, auf Mobile Devices hauptsächlich auch.
Und, ähm, und das kann ich eben alles deaktivieren.
Und, ähm, dann dachte ich, ja, cool, das krieg ich ja dann auch, äh, wahrscheinlich mitgeteilt in diesem Reporting, wenn jetzt jemand versucht, auf meiner Seite irgendwie die Kamera anzuzapfen, ja, dass ich dann drüber benachrichtigt werde.
Aber.
Da gibt's kein Reporting.
Feature Policy und Permissions Policy werden nicht reported.
Ah.
Und es gibt auch keinen gesonderten Header jetzt dafür, also irgendwie Permissions Policy Report 2 oder irgendwas.
Nee, geht nicht.
Dann dachte ich mir, aber das kann doch nicht sein.
Also ich mein, man kriegt, man kriegt dann tatsächlich, also ich hab so eine kleine Demoseite gebaut, die hab ich jetzt nur noch nirgends reingestellt, vielleicht verlinke ich die auch noch, wenn ich sie irgendwo reingestellt hab.
Ähm, ich kann dann nicht drauf zugreifen und es gibt halt einfach einen, einen, äh, entsprechenden Error, also, ähm, äh, eine DOM-Exception mit Permission Denied zum Beispiel, wenn ich die Kamera anzapfe.
Oder wenn ich es Fullscreen versuche, dann gibt's irgendwie ein Fullscreen Error.
Also ich kann das schon mit Try und Catch, aber ich muss es halt dann für jeden Einsatzzweck machen und ich krieg halt dann einmal eine DOM-Exception, einmal einen, einen Fullscreen Error zurück.
Also muss halt wirklich um die entsprechenden Blöcke Try, Catch machen.
Das heißt, ich kann nicht einfach sagen, aha, registriere mir, äh, einen, äh, irgendeinen Observer fürs Reporting.
Und da kommen wir nämlich dann schon zum nächsten.
Reporting Observer.
Wow.
Das ist nämlich, wir hatten's ja in Folge Nummer 44 über diverse, äh, Observer-APIs.
Und wir haben uns da so, ich glaub, die drei oder vier wichtigsten rausgeriffen, also Mutation, Intersection, äh, Resize und Mutation Observer 4 waren's dann.
Oder hab ich irgendwas doppelt jetzt, äh, Mutation, Interaction, Resize, waren's die drei.
Wir hatten, äh, Mutation und, äh, Intersection, ja.
Intersection, genau. Das waren die drei, über die wir gesprochen haben.
Genau. Und dann haben wir gesagt, es gibt noch andere, aber die nehmen wir jetzt nicht mit in die Tiefe. Und dann bin ich jetzt heute eben darauf gestoßen, auf den Reporting Observer, den's da gibt.
Und dann dachte ich mir, ach, das ist doch bestimmt die Lösung. Wenn's halt kein Header gibt, dann registriere ich einen Reporting Observer. Und dann kann ich doch bestimmt das machen. Aber nee, ähm, funktioniert leider nicht.
Also der Reporting Observer, der schmeißt mir nur auch nochmal diese CSP-Fehler. Ähm, die kann ich dann nochmal per JavaScript abgreifen und könnte sie dann auch wieder irgendwie an Systemen zum Logging oder sowas weitergeben.
Aber es, äh, bringt mir jetzt keinen sonderlich großen Vorteil jetzt im Vergleich zu dem Reporting URI oder Report2.
Aber, äh, ich hab nur neuen Observer kennengelernt und der funktioniert genauso wie die anderen. Ich registriere den einmal und dann mach ich Observer Observe.
Und dann, äh, schmeißt der mir eben, äh, so ein, so ein, äh, ja, bestimmtes Objekt, ähm, also eben keine DOM Exception, sondern halt ein, äh, wie heißt das, ähm, Feature Policy Violation Event, hätte ich jetzt erwartet.
Oder Permissions Policy Violation Event. Das schmeißt der mir eben halt nicht, aber er schmeißt mir irgendwie ein, äh, was war's dann? Content Policy Violation Event oder so.
Genau. Also, ich komm leider an diese, äh, vielleicht, vielleicht machen sie das mal irgendwann, wenn das mal implementiert ist.
Also, dass es das dann auch noch als Reporting gibt.
Aber es wird aktuell auch nur von Chrome und Edge und Opera, also allen Chromium Browsern, äh, überhaupt unterstützt.
Gut, damit haben wir dann nur noch einen Observer übrig, nämlich den Performance Observer.
Vielleicht geben wir den auch noch irgendwann an, dann haben wir alle Observer vollständig.
Den hatten wir in der, in der Folge mit dem Shep nicht, gell?
Ne, ich glaub, ich, also zumindest nicht im Detail, vielleicht haben wir mal irgendwie angesprochen, aber, äh, ich glaub im Detail noch nicht, oder?
Guck mal, Performance Observer.
In unserer geilen Suche, die mittlerweile live gescheit ist.
Also, wir haben ihn auch nicht in den Shownotes, vielleicht haben wir es mal am Rande besprochen, aber wer weiß, vielleicht, äh, vielleicht mag der Shep ja irgendwann nochmal hier im Detail über den Performance Observer berichten, wenn er den kennt und nutzt.
Ja, sag Bescheid, sag Bescheid, du weißt, you know how to contact us, falls du zuhörst.
Und dann hab ich auch gesehen, man kann das entweder über diesen Observer machen, oder, die Observer-Geschichte ist ja relativ neu, es gibt auch noch ein Event, das, glaub ich, schon länger unterstützt wird, und zwar das Security Policy Violation Event.
Also, ich kann dann sagen, Document at Event Listener, Security Policy Violation, und dann krieg ich eben auch an das Callback übergeben, auch wieder entsprechende Informationen, ähm, was, was da schiefgelaufen ist.
Aber, wie gesagt, halt leider nicht für die, für diese Permissions-Geschichte.
Okay, aber du könntest tatsächlich so CSP-Sachen auch asynchron irgendwo selbst irgendwie abfangen und irgendwo hinmelden oder irgendwas damit machen, oder sagen, ey, lass das mal, was du da tust. Könnte man auch machen dann.
Also, ich könnte es zum Beispiel nutzen, weil wir es vorhin drüber hatten, so von wegen, oh, da braucht man einen eigenen Server fast für diese Reports.
Ich könnte natürlich darüber so einen Vorfilter machen, ne, dass ich irgendwie sag, ja, alle Font-Dinger weiß ich eh, dass die fehlschlagen.
Äh, die brauch ich jetzt gar nicht, ähm, ne, das will ich gar nicht haben im Reporting.
Und bevor der Client jetzt aber schon für jeden Font, der da geladen wird, millionenfach am Tag, jedes Mal einen Fehler hinschickt und mir die Datenbank zumüllt, äh, fang ich lieber mit JavaScript ab und sag, okay, wenn, wenn, wenn's jetzt um Fonts geht, dann ignorier's.
Aber wenn's um das und das geht, das möcht ich auf jeden Fall wissen, dann schick mir das.
Und könnte zum Beispiel Stück für Stück sagen, ähm, äh, mach, äh, schick mir erst mal nur Fehlermeldungen zu bestimmten Sachen, ähm, und den Rest, äh, äh.
Ich hab zu viel gegoogelt, ich hab zu viel gegoogelt, äh, ich weiß nicht, ich hab zu viel gegoogelt, ich hab zu viel gegoogelt.
Ich hab gerade zum ersten Mal auf meinem Privatrechner, äh, beim Googeln das Capture gesehen von Google, hey, äh, sag doch mal, klick doch mal die Ampeln an.
Und ich dachte so, ach, Moment mal, bei Google hab ich das, ich kenn das, ich kenn das aus der Firma, äh, wo halt über die selber IP-Adresse extrem viele Leute kommen, ähm, weil, weil halt alle über, ja, über den gleichen, über die gleiche Internetverbindung irgendwie nach draußen gehen, ähm, aber bei mir zu Hause hatte ich das noch nie.
Also, zu Hause hatte ich das bisher nur, wenn ich irgendwie aus Versehen den VPN noch anhatte und, äh, zu spät gemerkt hab.
Ja, aber auf meinem Privatrechner hab ich kein VPN, also keins zur Arbeit, also, äh, natürlich nur VPN.
VPNs auf, ähm, ja, nee, ich hab gar keinen VPN.
So, kommt ihr noch mit mir mit in den, in den letzten kleinen Nebengang dieses, also gut, irrsinnigen Hasenbaus.
Geh mal, der irrsinnige, das wäre ein guter Folgen, Konstantin und der irrsinnige, Konstantins irrsinniger Hasenbau.
Konstantins irrsinniger Hasenbau.
Konstantin im Wunderland.
Nein, ich bin ja dafür, äh, äh.
Wir sprechen noch mal über den Titel, ja.
Ja.
Okay, und zwar ist mir dann noch aufgefallen, weil es war ja nicht schon genug Neues, ähm, es gibt Document.Feature Policy.
Das kannst du auch mal ausprobieren.
Document Feature, äh, warte, ach, okay, Moment, warte, äh, ich bin hier gerade auf Google, Punkt Feature Policy, okay, der gibt mir ein Objekt zurück.
Genau, und dann kannst du mal gucken, was es da noch für Subdinger gibt, da gibt's nämlich zum Beispiel Allowed Features, Allows Feature und Features.
Also, äh, Feature Policy, Punkt Features, ähm, wenn du das, die Funktion ausführst, die, oder die Methode, die führt, äh, die zeigt dir alles, was es gibt, sämtliche Geschichten.
Also, das ist auch eben MIDI, Bluetooth, äh, USB und so weiter, ist da alles drin.
Ähm, ähm, 50.
Und dann kannst du stattdessen eben auch noch Allowed Features dir auflisten lassen.
Oh Gott, also ich wollte, glaube ich, nie wissen, ich wollte, glaube ich, nie wissen, was der Browser theoretisch alles kann.
Ja.
Das sind Sachen, also es sind auch Sachen dabei, wo ich überhaupt gar nicht, was, wie bitte? Moment mal, also wie gesagt, es sind exakt 50 Sachen, wenn man hier auflistet, okay, Geolocation, äh, ist bei mir null, dann bei eins kommt schon Gamepad.
Ich denke, okay, Gamepad, Display Capture, okay, Local Fonts, äh, äh, und dann kommen wirklich merkwürdige Sachen, also sowas wie CH minus Save minus Data.
Ja, von den CH geht's ganz viel, CH-UA-Model, CH-RTT, also die UA ist wahrscheinlich User Agent, denke ich mal, CH-UA-Full-Version, äh, Plattform-Version, also da kann man sogar einschränken, was der, ja.
Ich hab bei 44 das Ethereum, das, what the fuck, what's that, ist das eventuell, ist das, Moment, warte mal.
Welcher Browser ist denn das, das Brave?
Das Brave.
Ja gut, da hat wahrscheinlich einen Ethereum-Miner drin, oder?
Ja, kein Miner, ich hoffe doch nicht.
Äh, aber irgendwas mit Krypto ist da, da gibt's ja irgendwie so eine komische Wallet, die man da irgendwie haben kann.
Ach du Scheiße, okay, Bluetooth.
Und dann gibt's jedenfalls noch, ähm, da gibt's hier noch, ach mal, get, get allow list for features, äh, for feature, wenn ich da jetzt USB mach, was krieg ich dann?
Developer.mozella.org, weil ich da grad drauf bin.
Ah, okay, da kriegst du dann, ähm, wenn da, wenn da URLs speziell erlaubst, das nochmal von, ach nee, von sowas war ja das andere, ne, krieg ich ja gar nicht.
Ah, okay, dann kann man sich nochmal irgendwie Details rauslutschen.
Und ich kann eben mit, ähm, Punkt allows feature, wenn ich da jetzt als Parameter in den Stream USB zum Beispiel übergebe, da kann ich halt überprüfen, ist das erlaubt oder nicht.
Also damit kann ich dann wirklich eine Feature Detection machen, ähm, Feature Policy allows feature USB, wenn das true ist, dann darf ich USB nutzen in dem Kontext und wenn nicht, dann nicht.
Weil wenn ich jetzt nur eine Feature Detection, also wenn ich jetzt nur sagen würde, ähm, äh, was geht's denn zum Beispiel, ähm, also wenn ich jetzt sagen würde, if USB-Device in, äh, in Document.
Wollen wir mal, Document, so.
Äh, nee, nicht in Document, in, in Window, nee, wo ist denn das USB-Device?
Ist das gerade nicht in, oder Navigator?
Nee.
Egal, also jedenfalls kann ich damit halt nicht nur detekten, ist dieses Feature, existiert das im Browser, sondern ich kann halt auch wirklich sagen, ist es denn im Moment gerade erlaubt, kann ich damit überhaupt irgendwas anfangen?
Ach, das fand ich irgendwie ziemlich, ziemlich cool.
Ja.
Aber, äh, ja, die Abdeckung, kann man mal kurz gucken.
Eieieiei, ich hab grad unsere Seite in so einen Checker eingegeben und, ähm, naja, man merkt, dass es ein Checker ist von einer, ähm, von einem Anbieter von Webhosting.
Die wollen nämlich jetzt alles verkaufen.
Ja, ja, klar.
Die wollen jetzt, äh, warte, die wollen ein SEO verkaufen und die wollen, dass wir schneller sind, indem wir einen CDN verwenden.
Weil es ist ja, das ist ja, das ist ja, da steht nicht, dass wir grad momentan langsam sind, aber wir sollen CDN kaufen.
Natürlich.
Ähm, und da sind wir eigentlich, wir sind angeblich, unsere Seite ist angeblich sehr langsam.
Ich sage, nö, das stimmt nicht, das weiß ich, das stimmt nicht.
Also kurz zur Abdeckung, ähm, die Chromium-Browser können das, Firefox kann's hinter einem Flag und Safari kann's noch nicht.
IE braucht man gar nicht drüber sprechen.
So, was hab ich denn noch? Hab ich noch was aufgeschrieben?
Genau, Feature Policy, äh, Allows Feature und Allowed Features und so weiter.
Ähm, und es wird auch später in dem Draft, äh, dann auch wirklich Document.Permissions Policy lauten und nicht mehr Feature, äh, Policy.
Ähm, kann man sich angucken dann in dem Editor's Draft, da steht's schon, schon anders drin.
Verlinke ich auch in den Show Notes.
Und dann noch kurz als Anmerkung, weil es gibt ja Frame Ancestors noch für die, ähm, CSP, äh, Geschichte.
Wenn ich das auf Nun setze, dann ist das eigentlich das Gleiche, wie wenn ich X-Frame Options auf Deny setze.
Also, ähm, das ersetzt dann diesen X-Frame Options Header.
Ist also, ne, also alles mit X vorne dran sind ja immer so Nicht-Standard-Header, auch wenn sie dann irgendwann von allen irgendwann mal adoptiert sind.
Aber, ähm, dieses, äh, mit dem CSP erübrigt sich das eben und das ist jetzt auch standardisiert.
Und mit Frame Ancestors im Vergleich zu Frame Source kann ich eben sagen, welche Seiten dürfen mich denn einbinden.
Also nicht, welche Seiten darf ich einbinden, was darf bei mir in dem iFrame oder Frame Done vorkommen, sondern eben, wo mag ich eingebunden werden.
Und das ist eben das Gleiche wie dieses X-Frame Options, dass ich das restriktiere.
Fertig.
Ende des Tunnels.
Sehen wir jetzt wieder.
Jetzt gehen wir ins Licht.
The light.
Ich finde dieses Scheiß-Tool von Microsoft nicht mehr.
Wie hieß das denn?
Hatten wir das in der Folge mit, ähm, Chris?
Fucking hell.
Ich weiß, ich bin gerade schon auf Chris' Twitter, um es rauszufinden.
Mir fällt das nicht mehr ein, weil das war echt cool.
Das war richtig, äh, das hab ich auch, als wir die Webseite entwickelt haben, also als ich die Webseite entwickelt hab, hier für, für, wo wir sind, ist vorne, hab ich das regelmäßig konsultiert und dann geguckt, ah, und dann haben wir noch das Security, das kann ich schnell fixen.
Das lassen wir mal so.
So wie der Klassiker, ihr wisst es ja schon, ne?
Also man, man, man, man fixt dann nicht alles, weil es gibt tausend Sachen irgendwie.
Ähm, ich finde dieses Tool, also wenn ihr das Tool, wenn ihr wisst, das ist von Microsoft, ich glaube, da stand nicht dick Microsoft drauf, deswegen weiß man vielleicht gar nicht, dass es von Microsoft ist, ich weiß aber, dass es von Microsoft war.
So ein Webseiten-Checker, der nicht nur irgendwie sagt, hey, schalt doch mal Gzip an, sondern der auch so ein bisschen Content-Security-Policy und alle möglichen anderen Security-Sachen checkt und der einem dann so eine Liste an Sachen gibt, die man, und erklärt, wie man sie, wie man sie irgendwie besser machen kann.
Ähm, das wäre, das wäre fein, wenn mir das nochmal jemand sagen könnte.
Das waren Online-Dings, oder?
Naja, das war sowas, wo du einfach die URL reinwirfst und dann kriegst du irgendwie die Info raus.
Ich weiß, ich finde es nicht mehr, es kann sein, vielleicht haben sie es offline genommen, weil ich, vielleicht suche ich auch.
Ich finde hier nämlich nur was über ein, ein, äh, URL-Scan-Security-Tool.
Vielleicht, vielleicht Google, es war aber, es war nicht ein explizites, äh, Security-Scan-Tool, sondern es war generell so ein Website-Check.
So, so wie Lighthouse, nur halt von Microsoft.
Und Lighthouse gibt einem ja auch teilweise Security-Hinweise.
Ähm, ja.
Genau, aber da fand ich halt, da zumindest damals, wann war, wann habe ich die Podcast-Webseite gebaut?
2019.
Ähm, damals war auf jeden Fall da deutlich mehr Security drin, als bei anderen solchen Checkern.
Das hat, ist mir damals aufgefallen, ich so, ah, krass, okay, gut, gucken wir mal, ob wir das irgendwie schnell gefixt kriegen.
Es war nicht Web-Page-Test, das ist nämlich nicht von Microsoft, habe ich mich gerade nochmal gefunden.
Ähm, ja, keine Ahnung.
Vielleicht, vielleicht, vielleicht, vielleicht haben sie das irgendwie in den, in den, in den Dev-Tools statt Lighthouse eingebauten.
Ja, das ist, aber sie haben da auch Lighthouse.
Echt?
Ja.
Aber da gibt es noch, das war in den Dev-Tools aber irgendwie mal mit drin.
Ich weiß aber nicht, dass...
Vielleicht haben sie das inzwischen ersetzt durch Lighthouse.
Ja, vielleicht haben sie es aufgegeben.
Das fände ich schade.
Mhm.
Das fände ich tatsächlich schade.
Aber warte mal, stopp.
Ich habe noch ein, ich habe noch eine Idee, wie ich da hinfinden könnte.
Ich habe nämlich tatsächlich hier verschieden, ich habe, ich glaube, fünf verschiedene Browser-Profile
und eines von diesen Browser-Profilen heißt, äh, ähm, Accessibility-Workshop.
Ähm, und da meine ich, dass da in einem dieser Accessibility-Tools von Microsoft das mit eingebunden war.
Moment, das muss ich jetzt nochmal, wo, wo, wo sehe ich denn jetzt?
Hä, da sind gar keine Plugins, was ist denn los?
Das ist doch alles broken.
Okay, gut, ich glaube, ich finde es jetzt nicht auf die Schnelle.
Also, wenn wir es noch finden im Nachgang, dann kommt es in die Shownotes.
Falls wir es finden im Nachgang, dann kommt es in die Shownotes.
Und falls wir es noch nicht gefunden haben, es nicht in den Shownotes ist, aber ihr wisst, wovon ich rede,
und habt jetzt irgendwie verstanden, was ich meine, dann bitte, äh, bitte einen Kommentar schreiben.
Also, äh, falls ihr jetzt im Podcatcher das hört, ähm, ihr könnt einfach mal in die, in die Shownotes gehen
und dann habt ihr ganz oben einen Link, wo ihr zur, äh, zur Podcast-Episoden-Seite kommt
und dann bitte mal schnell einen Kommentar schreiben.
Ich würde mich sehr drüber freuen.
Aber vielleicht ist das auch diskontinuiert.
Und falls Chris Heilmann, falls du das hörst, ähm, du weißt mit Sicherheit, wovon ich rede,
ähm, dann bitte auch mal kurz Bescheid sagen, ob es das noch gibt.
Äh, also, ich glaube auch, ich kann mir fast nicht vorstellen, dass es noch gibt, weil normalerweise sind die ja auch ganz gut in SEO.
Das heißt, so wie ich jetzt, oder ich hab einfach wahnsinnig dämlich gesucht.
Das will ich jetzt nicht ausschließen, aber...
Ich hab's auch nicht gefunden.
Ich hätte jetzt schon erwartet, dass man es findet.
Und ich weiß noch, ich weiß noch ungefähr, wie es aussah, es war grafisch relativ hübsch aufbereitet.
Und, ähm, ja, wenn von Microsoft was grafisch hübsch ist, dann fällt mir das auch immer mal auf.
Also, nein, es ist ja gar nicht mehr so.
Es ist ja, ich rede ja über das Microsoft von vor 15 Jahren.
So.
Gut.
Das war das Thema.
Rabbit hole beendet.
Gut, dann können wir, können wir weiter, weitergehen.
Hast du gar nicht mehr versucht, es in einen Satz einzubetten?
Nö, wieso sollte ich, wieso sollte ich?
Ähm, ja, mir fehlt gerade wieder ein, ich hab jetzt, ich achte heute besonders auf die Jingles und wie sie klingen, weil, wahrscheinlich, weil es bei mir gerade alles lauter gedreht ist, äh, als in den letzten Folgen.
Und jetzt ist auch mir hier aufgefallen, das hab ich ja, wenn ihr wüsstet, wie dieser Jingle entstanden ist, da hatte ich nämlich noch kein Mikrofon, mit dem ich das hätte machen können.
Oder ein Audiointerface, wo ich ein Mikrofon hätte dran anschließen können.
Ähm, also doch hatte ich aber ein schlimmes Mikrofon, aber ich hatte auf dem Gerät, wo ich den Jingle produziert hab, keine Möglichkeit.
Da ein Mikrofon dran anzuschließen.
Das ist tatsächlich mit dem iPad aufgenommen.
Also ich hab ins iPad reingesprochen.
Und deswegen klingt das auch an manchen Stellen so ein bisschen
komisch, äh, also ich mein, klar, äh,
es ist nicht, nicht original meine Stimme.
Habt ihr vielleicht gemerkt.
Ähm, aber...
Ja, und auch komplett damit bearbeitet, oder?
Auf dem iPad.
Ja, komplett damit bearbeitet, mit GarageBand auf dem iPad, ja.
Genau.
Ähm, aber ich, ich, ich höre die Stellen, wo, wo man merkt, dass es, dass ich ins iPad-Mikrofon reingesprochen hab, relativ nah.
Ähm, wo man dann, wo man nämlich so ein bisschen...
Und das ist da ganz schlimm.
Ähm, ja, egal.
Trotzdem gut.
Ich will's gar nicht verändern.
Es soll so bleiben.
Mein Geilteil heute ist eine Podcast-Folge.
Ähm, und zwar, ich hab schon öfter, äh, erwähnt, den Podcast Alles von, äh, Alles gesagt, äh, von Zeit.
Von der Zeit.
Ähm, und das ist ja so ein, so ein Interview-Podcast, wo sie, ähm, bestimmte mehr oder, ja, was heißt mehr oder weniger?
Ne, bekannte Persönlichkeiten einladen und mit denen reden und die, die interviewen zu allen möglichen Themen, solange bis der Gast keinen Bock mehr hat.
So, das ist das, äh, das Grund, äh, ja, Konzept von diesem Podcast.
Das heißt, da gibt's Folgen, die sind über acht Stunden lang.
Also, ich, ich steh auf sowas.
Äh, ist nicht für jeden, aber man, ich hör die auch nicht am Stück, aber ihr habt ja vorhin schon gehört, für Podcast, ihr habt 13 Tage Podcast gehört in diesem Jahr.
Also, da ist ein Großteil davon das gewesen.
Ähm, und ich möchte, also, ich möchte gar nicht den Podcast an sich empfehlen, sondern eine ganz bestimmte Folge, und zwar, ähm, jetzt mittlerweile nicht mehr die neueste, sondern die, äh, die zweitneueste, äh, mit Marina Weisband.
Ähm, vielleicht sagt dir das was, Konstantin?
Ja, ja, klar, ich sag mir was, ja.
Äh, äh, ich suche auch gerade schon, deswegen, ich bin nicht abgelenkt, weil ich irgendwas anderes tippe, sondern ich suche gerade diese Folge und will mir die in die Playlist, äh, setzen.
Ja, der.
Weil ich das nämlich letztens vergessen hab.
Ach, ich bin, ja, bei Apple Music kann ich lange nach dem Podcast suchen.
Richtig.
Ja, ja, man kann's, man kann's ja mal versuchen.
Naja, also, ich war, äh, Vorständin bei den Piraten, bei der Piratenpartei.
Bei der Piratenpartei, genau.
Vor einigen Jahren.
Ja.
Genau.
Und, ähm, ich mag eigentlich so gut wie alle Folgen von Allesgesagt, zumindest so die aktuellen, ich hab nicht alle rückwärts gehört, da hätt ich auch ne Menge zu tun gehabt, weil, wie gesagt, die Folgen sind manchmal acht Stunden lang.
Aber die ist für mich besonders hervorgestochen, ähm, und das liegt an der Gästin, weil, äh, ich kannte Marina Weißband so von, ja, das ist, war, die war mal Vorständin von den Piraten, äh, aber ich hab mich nie jetzt besonders mit der auseinandergesetzt.
Also, ich folgte halt seit Jahren, also seitdem schon, ähm, auf Twitter und sie war dann auch, als sie nicht mehr bei den Piraten war, trotzdem noch politisch aktiv und daher hab ich sie auch immer, immer wieder in der Timeline gehabt einfach.
Und, ähm, die hat ein paar Sachen gesagt, die ich sehr bemerkenswert fand, also, äh, sie sind jetzt zu viele, um sie aufzulisten, ich fand das, ich fand es ein sehr bemerkenswerter Podcast insgesamt, ähm, aber interessant fand ich, äh, dass sie auch, dass sie gleich quasi das Gespräch damit begonnen hat, ähm, mit, mit einem Statement zu Accessibility, das fand ich ganz interessant, das hätt ich nicht erwartet, äh, sie hat Folgendes gesagt und das hat mir auch, ich hab das noch mal zitiert bei Twitter und, äh, und bei Mastodon und das hat mir so ein paar, ich glaube, es ist mein erfolgreichster Tweet aller Zeiten.
166 Likes, ähm, und zwar hab ich eigentlich nur zitiert, was sie gesagt hat, nämlich, äh, also der erste Satz fand ich fantastisch, wenn man Dinge behindertenfreundlich macht, macht man sie menschenfreundlich.
Das ist sehr gut auf den Punkt gebracht, was ich versuche in langen Vorträgen seit Jahren immer wieder zu erklären, also, aber echt wirklich mit, mit dem Nagel auf dem Kopf, äh, eine sehr, sehr schöne Aussage, fand ich, fand ich fantastisch, ähm, aber auch ein Wort, was sich echt in meinen Hirn reingefräst hat, was, was ich, was ich wahrscheinlich nie wieder rauskriege und gerade, wenn man in, in, in, ne, im Umfeld unterwegs ist, wo man es mit vielen Menschen zu tun hat und wo viel, äh, Politik irgendwie, äh, eine Rolle spielt,
Verantwortungsdiffusion. Ähm, das fand ich, fand ich fantastisches Wort, das muss ich ab sofort sehr oft verwenden, ähm, die, die Leute, die, ja, die werden es dann erleben, die, die das dann an den Kopf, äh, geworfen bekommen.
Und zwar, Verantwortungsdiffusion, so als Beispiel wäre, ähm, du hast, du sprichst mit einer Behörde, das ist eine Behörde, zu, reiner Zufall, dass ich jetzt über eine Behörde spreche, ja, du sprichst mit einer Behörde und die sagen, äh, zu einem bestimmten Thema und sagst, ja, mach doch mal hier, äh, keine Ahnung, führt mal die E-Mail ein, ja, keine Ahnung, ist ja vielleicht, vielleicht ein schlechtes Beispiel.
Also, du gehst zu einer Behörde und sagst, ja, mach doch mal dies. Und dann sagen die, ja, das können wir nicht entscheiden, das muss, Behörde B ist dafür zuständig, ja, und Behörde B sagt dann, ja, ja, ganz schlecht gerade, das muss Behörde C machen, da haben wir gar keine Verantwortung.
Und Behörde C sagt, ja, das ist Behörde A, ähm, Behörde A ist dafür zuständig und so dreht sich das da, also das ist nur ein Beispiel.
Passierschein A38.
Genau, Passierschein A38, ähm, wer Asterix kennt, äh, genau, also, Verantwortung, also, es ist, es ist, es ist im Prinzip nicht klar, wer ist denn wirklich verantwortlich, die Verantwortung wird weitergeschoben, ähm, und keiner, keiner möchte eine Entscheidung fällen, keiner möchte die Verantwortung tragen und deswegen schiebt man es mal woanders hin und am Ende, drehst du dich im Kreis und hast überhaupt gar keine Ahnung.
Ich fand es sehr schönes, sehr treffendes Wort für einen Zustand, den ich nur allzu gut kenne. Dieses, man weiß gar nicht so richtig, wen man greifen kann oder wen man mal anbrüllen müsste, damit sich was, damit sich was verändert.
Ja, da ist es eigentlich auch egal, ob das jetzt eine öffentliche Behörde ist oder ob es einfach ein großes Unternehmen ist, wo, wo das gerne gespielt wird, ne?
Also, ja, das wird, glaube ich, also, gerade auch, wenn du irgendwie, du hast, du hast eine Beschwerde und dann denkst du, ja, ich verstehe sie ja, aber da kann ich nichts dafür.
Ähm, und dann, äh, gegen Ende, und das fand ich auch noch ganz schön, ähm, wurde sie, wurde sie gefragt, weil sie halt viel sich auch immer noch politisch engagiert, aber halt so in Richtung, ähm, Demokratie an Schulen, also sie versucht, äh, die macht wohl viel, äh, die ist an Schulen und versucht mit, äh, mit Schülern so Demokratie zu üben und die dürfen dann auch so eigene Entscheidungen fällen und sowas, das ist ganz, ganz interessant.
Und dann wurde sie am Ende noch gefragt, ja, wie denn eigentlich so ihre Utopie für eine Gesellschaft aussieht.
Und dann hat sie gesagt, ja, so, so, äh, nachgefragt, so, ja, so ganz frei, so, ich kann mich jetzt wirklich raussuchen.
Und am Ende kam sie halt raus auf, naja, so dieses, dieses Star Trek Next Generation Ding, irgendwie, äh, sie hat gesagt, zu ihrer Utopie fehlt uns noch der Replicator.
Der, der, der quasi, der quasi, äh, äh, mit, mit vorhandener Energie, die irgendwie nichts kostet, unendlich viel von allem herstellen kann, was man braucht.
Weil dann, in dem Augenblick, wo es das gibt, wird Geld komplett wertlos, äh, weil jeder, jederzeit alles haben kann, was er braucht.
Und, ähm, ja, das fand, das fand ich, also, da hat, das hat sehr mit mir resoniert, diese ganze Folge, äh, und, und die Frau, was sie, was sie so für Ansichten hat, sehr viele, sehr clevere Sachen, kann ich nur sehr empfehlen,
sich, sich diese Podcast-Folge mal anzuhören.
Cool, schon direkt eingereiht bei mir im Podcatcher.
Genau, ich muss grad mal gucken, wie lange die ist.
5 Stunden 40.
Nur 5 Stunden 41 und 47 Sekunden, das ist eher eine kurz, eine kürzere Folge und alles gesagt.
Lohnt sich auch, ähm, in, in Etappen reinzuhören, auf jeden Fall.
Also, das fand ich wirklich fantastisch, äh, deswegen muss ich das jetzt hier empfehlen.
Ja.
Das war mein Geilteil.
Das war dein Geilteil.
Und damit kommt jetzt.
Mensch, eine erfrischend kurze Folge heute, oder?
Warte mal, ich muss grad mal gucken.
Ein Dreiviertelstunde knapp.
Ja, geht.
Für unsere Verhältnisse.
Als wir dann irgendwann in diese, in diese, äh, Musikgeschichte abgetaucht sind, da wurd's dann ein bisschen ...
Dachst du's schon, wir sprengen wieder den Rahmen. Nee, aber das ist doch heute, das ist doch mal erfrischend.
Genau so wie mein Getränk.
Ja.
Genau so wie mein Getränk.
Ja, mein Getränk war auch sehr erfrischend.
Mh.
Bestellen Sie jetzt das WWSIV Bierpaket.
Oh Mensch.
Aber wir haben gar keine Werbung gemacht.
Dann kommt jetzt Werbung.
Wir haben keine Werbung gemacht?
Das geht ja nicht.
Dann kommt jetzt noch Werbung, oder?
Hey, hey du, schön, dass du da bist.
Na, öfter hier?
Dir gefällt, was du hörst, und du magst es am liebsten werbefrei und unabhängig?
Dann freuen wir uns sehr über ein paar Euro in unserem digitalen Strumpfband unter www.siv.de
slash spende auf www.siv.de slash unterstützen findest du noch ca. 69 weitere Wege, uns zu supporten.
Wir danken dir.
So, jetzt war das auch geschwätzt.
Ja.
Also wollte ich noch, genau, das haben wir im Stream schon drauf hingewiesen, es gibt jetzt noch eine Möglichkeit, wie man uns unterstützen kann, ganz unkompliziert.
Und zwar muss man nicht mal www.siv.de slash unterstützen oder www.siv.de slash Amazon eingeben,
sondern wenn ihr auf irgendeinem Produktseite, auf irgendeiner Amazon-Seite, keine Ahnung, hier HDMI-Kabel sehe ich hier gerade,
ne, DP-Displayport-Kabel, so.
Dann kann ich jetzt in der URL aus dem Amazon, von Amazon.de, kann ich einfach a.wwsiv machen.
Also a.wwsiv.de, den Rest lasse ich gleich, dann lande ich wieder auf dieser Produktseite,
aber unser Referral-Tag ist dann automatisch angehängt.
Und dann verdienen wir ein paar Cent mit.
Das tut nicht weh, es geht ganz schnell.
Das würde uns sehr freuen.
Ja, aber wenn ich Amazon-Links irgendwo teile, dann ersetze ich das vorher in der URL.
Genau.
Das wäre natürlich nicht reich, aber es ist so ein bisschen was, kommt da zusammen.
Ja, also eigentlich kommt quasi nix rein.
Ihr könntet ja mal, wir haben ja, war das im Podcast, wo wir geguckt, ich glaube, es war in der letzten Podcast-Folge,
wo wir geschaut haben, was sind die teuersten Produkte bei Amazon sind.
Ja.
Also wenn ihr Weihnachtseinkauf macht bei Amazon oder so, irgendwie Geschenke kauft,
wir würden uns freuen, wenn da irgendwie ein paar Cent bei uns landen.
Es kostet euch überhaupt nichts.
Wir freuen uns natürlich aber auch über Spenden.
Wir freuen uns, wenn ihr uns auch bei Twitch irgendwie verfolgt, freuen wir uns auch über Twitch-Subs oder über Prime-Subs.
Ihr müsst nicht mal Twitch gucken.
Ihr könnt uns einfach auch so euren Prime-Sub geben.
Ja, oder wie gesagt, auf www.sev.de slash unterstützen gibt es noch eine Menge andere Wege, wie man uns helfen kann.
Und wir würden uns sehr darüber freuen.
Und auch wenn dieser Werbespot in Anführungsstrichen eher lustig ist, wir meinen ihn trotzdem ernst.
Ja.
So schaut's aus.
Und damit, macht's gut.
Bis zum nächsten Mal.
Macht's gut, bis dann.
Danke, bis zuhören.
Ciao.
Untertitelung des ZDF für funk, 2017