WEBVTT

NOTE
Podcast: Wo wir sind ist vorne.
Episode: HTML Sanitizer API mit Frederik Braun
Publishing Date: 2021-10-15T08:40:46+02:00
Podcast URL: https://wowirsindistvorne.show
Episode URL: https://wowirsindistvorne.show/html-sanitizer-api-mit-frederik-braun/

00:00:00.000 --> 00:00:04.000
 Wo wir sind, ist vorne, Folge 31. Heute desinfizieren wir das Internet.

00:00:04.000 --> 00:00:20.100
 Herzlich willkommen bei Wo wir sind, ist vorne.

00:00:20.100 --> 00:00:22.900
 Frontend Fakten Frotzeleien.

00:00:22.900 --> 00:00:26.900
 Der Late-Night-Frontend-Talkshow rund um Webdesign und Entwicklung.

00:00:30.000 --> 00:00:38.600
 Es reden sich um Head und Kragen, HTML-Fundamentalist Moritz Gießmann und JavaScript-Jongleur Konstantin Groß.

00:00:38.600 --> 00:00:56.560
 Hallo, da sind wir wieder und wir sind heute zu dritt.

00:00:56.740 --> 00:00:59.700
 Wir haben mit an Bord den Frederik oder Freddy Braun.

00:00:59.700 --> 00:01:01.420
 Hi, schön, dass du da bist.

00:01:01.420 --> 00:01:01.680
 Hallo.

00:01:01.680 --> 00:01:06.800
 Ja, mir gar nichts überlegt für die Begrüßung.

00:01:06.800 --> 00:01:11.860
 Eigentlich können wir direkt mit unserem Bier starten, weil wir sind alle heute am Start.

00:01:11.860 --> 00:01:16.260
 Genau, weil ich noch wenig gesagt habe, fange mal an.

00:01:17.160 --> 00:01:22.100
 Ich trinke heute aus Brügge immer noch belgisches Bier, ein Bruxezot oder Bruxezot.

00:01:22.100 --> 00:01:31.740
 Ich habe keine Ahnung, wie es richtig ausgesprochen wird, dass so ein lustiger Clown vorne drauf und ich sage mal, 6 Prozent ist diesmal nicht so schlimm, wie es schon mal war im Stream.

00:01:33.980 --> 00:01:35.440
 Ja, bin mal gespannt, wie es schmeckt.

00:01:35.440 --> 00:01:36.940
 Ich mache mal hier wieder ein bisschen Alze mehr.

00:01:36.940 --> 00:01:38.680
 Das ist aber schön.

00:01:38.680 --> 00:01:41.540
 Freddy, was hast du Gutes?

00:01:42.360 --> 00:02:00.360
 Ich trinke zwei Getränke. Einmal für die Stimme, vielleicht hört man es ein bisschen, ein Halswärmer Tee. Der ist nicht nur für die Stimme, der ist auch für den Geschmack, muss ich sagen. Und dann nur für den Geschmack, Lamsbräu, dunkelalkoholfrei. Ich mag gerne Dunkelbier, sehr würzig, sehr lecker. Das ist eins meiner Lieblingsbiere.

00:02:00.800 --> 00:02:28.880
 Cool. Ja, kommt auf jeden Fall auf meine interne Liste für Getränke. Ja, ich habe ein Bier vom Discounter meines Vertrauens. Tatsächlich, aber es ist nicht so ein Dosenbilligbier, sondern so ein Craftbier, ein Irish Craft, The Crafty Brewing Co. Lager. Und das, ja, habe ich gedacht, sieht nicht schlecht aus, probiere ich mal aus. Mal gespannt, was das kann. Ja, dann zum Wohl.

00:02:29.200 --> 00:02:31.960
 Zum Wohl. So. Prost.

00:02:31.960 --> 00:02:39.340
 Okay. Habt ihr noch was oder starten wir direkt mit der Retro?

00:02:39.340 --> 00:02:42.080
 Starten wir doch, oder? Jawohl. Jo.

00:02:42.080 --> 00:02:49.520
 BW SIV präsentiert die Retrospektive.

00:02:49.520 --> 00:02:59.180
 Ja, wir beginnen mit einem Desaster. Und ich habe nicht so richtig tief in die Technik reingeschaut.

00:02:59.200 --> 00:03:02.660
 Ich weiß nur, dass alle Builds bei uns rot waren. Let's Encrypt.

00:03:03.880 --> 00:03:11.860
 Da hat sich was geändert. Da ist so ein, ich glaube, diese Root-Stelle, da hat sich irgendwie geändert.

00:03:11.860 --> 00:03:14.140
 Das Stammzertifikat ist abgebrochen. Ja, das Stammzertifikat, genau.

00:03:15.080 --> 00:03:21.380
 Also ein bisschen was technisch kann ich sagen, wenn du da nichts ... Ich will dazu nichts sagen. Achso, du willst da nichts zu sagen.

00:03:21.380 --> 00:03:24.280
 Ja, ich würde dazu sagen. Ja, ich würde es, glaube ich, ich würde es kurz erklären wollen. Ja, gerne.

00:03:24.280 --> 00:03:35.440
 Also ich bin jetzt auch nicht komplett drin, so in Kryptografie und Zertifikatsgeschichten, aber es ist so, dass bis vor einigen Jahren war das ja immer noch so, dass SSL-Zertifikate sehr viel Geld gekostet haben, wenn man die hatten, wenn man die wollte.

00:03:36.120 --> 00:03:47.980
 Und dank Let's Encrypt, ist, glaube ich, eine allgemeinnützige Organisation sogar, gibt es das jetzt quasi kostenlos und relativ einfach auch oft integriert in diesen Serververwaltungsschnittstellen und so.

00:03:49.580 --> 00:03:59.340
 Und das basierte aber darauf, das ist ja immer so ein Level of Trust, es gibt diese Stellen, die das da offiziell signen und dafür bürgen quasi, dass der Inhalt auch dem entspricht, was man behauptet.

00:03:59.340 --> 00:04:08.300
 Und wenn da jetzt jemand Neues auf den Markt kommt und sagt so, ja, wir bieten das jetzt an, dann muss ja jemand dafür bürgen, dass das auch tatsächlich alles so seine Richtigkeit hat.

00:04:08.300 --> 00:04:17.620
 Und deswegen war das so eine Zertifikatskette, nicht ein einziges Zertifikat, sondern es wurde quasi dafür gebürgt, seitens von einem etablierten Anbieter, dass das alles seine Richtigkeit hat.

00:04:18.240 --> 00:04:24.560
 Und inzwischen ist es so, dass dem Let's Crypt Zertifikat, dem eigentlichen, tatsächlich auch direkt vertraut wird.

00:04:24.560 --> 00:04:29.840
 Und dieses Hintergrund Zertifikat, dieses Root Zertifikat, das ist jetzt eben abgelaufen Ende September.

00:04:29.840 --> 00:04:42.440
 Und das ist das, was zu den Problemen geführt hat, weil gerade ältere Systeme, die halt noch im Zertifikatsspeicher nicht die entsprechenden Änderungen drin haben und die entsprechenden Updates bekommen haben, dem eigentlichen Zertifikat eben nicht vertrauen.

00:04:42.440 --> 00:04:43.920
 Und dadurch kamen diese Probleme.

00:04:45.620 --> 00:04:48.800
 Ja, mega nervig. Kann ich dir nur dazu sagen.

00:04:48.800 --> 00:04:55.240
 Ja, und vor allem halt, also ich meine, so Sachen wie Slack war halt down und darauf basieren wir halt auch unsere Kommunikation.

00:04:55.240 --> 00:05:00.680
 Und das ist halt einfach, wenn das einen halben Tag einfach nicht geht, hat schon Impact auch so auf größere Firmen.

00:05:00.680 --> 00:05:03.900
 Nicht, dass ihr denkt, der Podcast, nein, wir nutzen sowas nicht.

00:05:03.940 --> 00:05:04.160
 Nee, nee.

00:05:04.160 --> 00:05:04.980
 Das muss ja Konstantin.

00:05:04.980 --> 00:05:07.920
 Genau.

00:05:07.920 --> 00:05:10.340
 Sollen wir gleich zum Nächsten?

00:05:10.340 --> 00:05:10.960
 Ja, gerne.

00:05:10.960 --> 00:05:13.340
 Wir waren am, wann war's denn?

00:05:13.340 --> 00:05:16.980
 Letzte Woche Donnerstag, 30. September war das.

00:05:16.980 --> 00:05:22.440
 Da waren wir beim Jonas Tech Up und haben dort unsere Folge 28 quasi nochmal aufgegriffen.

00:05:22.580 --> 00:05:28.080
 Das waren die CSS-Eigenschaften, die wir noch nicht kannten und haben die dort als Demos gezeigt im Livestream.

00:05:28.080 --> 00:05:36.200
 Und man kann das, wer es verpasst hat, weil wir haben es nämlich auch verpasst im Podcast direkt anzukündigen, der kann das in der Mediathek von Jonas nachschauen.

00:05:36.300 --> 00:05:41.440
 Da kommt der Link in die Shownotes und vielleicht interessiert es ja jemanden, das Ganze nochmal in Aktion zu sehen.

00:05:41.440 --> 00:05:42.420
 Genau.

00:05:42.420 --> 00:05:54.740
 Und wer wissen will, wie das aussieht, wenn ich meinen Rechner mal an die Grenzen treibe, so bis der Ton abstürzt, dem sei das auf jeden Fall empfohlen, weil das war letzten Endes, das werdet ihr dann sehen.

00:05:54.740 --> 00:06:01.400
 Da gab es am Ende ein kleines Problem und das war tatsächlich, dass mein Mac gesagt hat, nee, Speicher ist jetzt voll, mach mal bitte Apps zu.

00:06:01.400 --> 00:06:02.440
 Genau.

00:06:02.440 --> 00:06:04.480
 War eine gute Erfahrung.

00:06:04.620 --> 00:06:07.120
 Jetzt weiß ich auch mal, wie das aussieht.

00:06:07.120 --> 00:06:08.920
 Das hatte ich nämlich vorher noch nicht geschafft.

00:06:08.920 --> 00:06:11.360
 Ja.

00:06:11.360 --> 00:06:13.040
 Aber schon, das ist ja heute recht schnell, genau.

00:06:13.040 --> 00:06:13.780
 Ja.

00:06:13.780 --> 00:06:17.140
 Genau, dann kommen wir zum nächsten Punkt.

00:06:17.140 --> 00:06:23.640
 Das war ein Gespräch, was ich im Stream schon mit den Leuten hatte, aber auch mal mit einem Kollegen geführt habe und wir haben da auch schon drüber gesprochen.

00:06:23.640 --> 00:06:27.260
 So die Frage, was ist eigentlich eine Podcast-Folge wert, haben wir uns mal gestellt.

00:06:27.260 --> 00:06:28.800
 Das ist gar nicht so leicht zu beantworten.

00:06:28.800 --> 00:06:32.140
 Also so, ist eine Podcast-Folge ein Euro wert?

00:06:32.140 --> 00:06:34.420
 Würdet ihr einen Euro für eine Podcast-Folge bezahlen?

00:06:34.480 --> 00:06:38.780
 Nicht, dass wir unseren Podcast kostenpflichtig machen wollen, aber es war so ein interessanter Gedanke.

00:06:38.780 --> 00:06:47.160
 Also ist das irgendwie, wenn ich jetzt am Abend in der Kneipe ein Bier trinke für 3,50, das sind dann quasi drei Podcast-Folgen, also wenn man das mal so gegenüberstellt.

00:06:47.380 --> 00:06:49.340
 Und ich fand es ein interessantes Gedankenspiel.

00:06:49.340 --> 00:06:51.460
 Konstantin, was wäre dir in der Podcast-Folge denn wert?

00:06:53.520 --> 00:06:58.240
 Ja, also ich bin da tatsächlich auch nicht so dabei beim Spenden, ich bin aber auch nicht so dabei beim Hören.

00:06:58.240 --> 00:07:01.140
 Also ich höre relativ wenig Podcasts und relativ unregelmäßig.

00:07:02.340 --> 00:07:06.760
 Aber so im Grunde finde ich jetzt ein Euro pro Folge tatsächlich nicht viel.

00:07:07.260 --> 00:07:08.960
 Also je nachdem, wie oft die natürlich rauskommt.

00:07:08.960 --> 00:07:11.500
 Wenn die jetzt jeden Tag rauskommt, dann wären das schon sieben Euro in der Woche.

00:07:11.560 --> 00:07:17.720
 Aber also gerade für so, wie wir veröffentlichen alle zwei Wochen in Euro pro Folge, finde ich jetzt nicht viel.

00:07:17.720 --> 00:07:20.080
 Gibt es einen Podcast, der jeden Tag veröffentlicht?

00:07:20.080 --> 00:07:20.860
 Ich weiß es gar nicht.

00:07:20.860 --> 00:07:21.360
 Keine Ahnung.

00:07:21.360 --> 00:07:23.120
 Keine Ahnung.

00:07:23.780 --> 00:07:28.040
 Naja, es gibt halt viele Radiosendungen, die viele Leute als Podcasts hören.

00:07:28.040 --> 00:07:30.740
 Die gibt es natürlich dann schon täglich, gerade auch so kurze Sachen.

00:07:30.740 --> 00:07:37.340
 Was ich zum Beispiel sehr, sehr gerne höre, wenn ich Wärmung dafür machen darf, ist das WDR-Zeitzeichen.

00:07:37.340 --> 00:07:43.880
 Das ist jeden Tag 15 Minuten ein Jahrestag, ein Todestag, irgendwas aus der Geschichte.

00:07:43.880 --> 00:07:46.360
 Und immer meines Erachtens nach höchst interessant.

00:07:46.360 --> 00:07:50.000
 Manchmal technisch, manchmal Kultur, manchmal, keine Ahnung, Politik.

00:07:52.900 --> 00:07:54.260
 Ja, der ist täglich.

00:07:54.260 --> 00:07:57.380
 Aber den bezahlen wir ja schon durch unsere Runde.

00:07:57.380 --> 00:08:04.780
 Wobei, ich weiß nicht, ich glaube, da kommt es, glaube ich, auch auf den Gehalt und wie viel mir das bringt und auch auf die Länge an.

00:08:04.780 --> 00:08:06.780
 Ob ich dann sagen würde, was ist das wert?

00:08:06.780 --> 00:08:10.420
 Also 15 Minuten jeden Tag werden mir jetzt nicht jede Folge in Euro wert.

00:08:10.420 --> 00:08:13.840
 Ja, 15 Minuten ist natürlich völlig anders als der typische Tag.

00:08:13.840 --> 00:08:17.960
 Man könnte ja sagen, eine Minute, einen Cent, dann würden wir mit einer Stunde …

00:08:17.960 --> 00:08:21.480
 Dann würden wir noch mehr reden, damit wir die Zeit aufblähen.

00:08:21.740 --> 00:08:23.180
 Nein, nein, natürlich nicht.

00:08:23.180 --> 00:08:27.680
 Genau, also alles, was ihr von uns kriegt, könnt ihr ja auch kostenlos konsumieren.

00:08:27.680 --> 00:08:28.860
 Wir wollen auch, dass das so bleibt.

00:08:29.980 --> 00:08:35.780
 An der Stelle aber dann noch ein riesiges, riesiges Dankeschön an die größte Spende, die wir bislang bekommen haben.

00:08:35.780 --> 00:08:38.800
 Ich sage jetzt nicht wie viel, ich sage nur Danke, Susanne.

00:08:38.800 --> 00:08:40.180
 Ja, vielen Dank, Susanne.

00:08:40.260 --> 00:08:41.400
 Das war echt der Hammer.

00:08:41.400 --> 00:08:43.780
 Als ich die Mail gekriegt habe, habe ich gedacht, das kann nicht wahr sein.

00:08:43.780 --> 00:08:46.360
 Total verrückt.

00:08:46.360 --> 00:08:47.160
 Vielen, vielen Dank.

00:08:47.160 --> 00:08:56.320
 Und vor allem, normalerweise sind wir es gewöhnt in letzter Zeit, wenn wir Spenden kriegen, dann passieren die während dem Stream, weil die Leute dann auch quasi direkt ihre Props kriegen in Form eines Overlays.

00:08:57.200 --> 00:09:00.100
 Und dann noch einen kleinen Text reinschreiben können, der dann vorgelesen wird.

00:09:01.060 --> 00:09:04.960
 Aber das kam jetzt einfach so unvermittelt zwischendrin und es hat uns ja sehr, sehr gefreut.

00:09:04.960 --> 00:09:06.680
 Genau.

00:09:06.680 --> 00:09:07.560
 Dann?

00:09:07.560 --> 00:09:09.060
 Dann geht es schon weiter.

00:09:10.080 --> 00:09:16.460
 Den Begriff Internet-Ausdrucker, den benutzt man ja gerne, um so den Zustand der Digitalisierung in Deutschland zu skizzieren.

00:09:16.460 --> 00:09:25.620
 Und wir hatten jetzt tatsächlich eine Anfrage von einem Kunden, wo wir gerade den Relaunch machen, ob wir nicht die alte Webseite bitte ausdrucken könnten.

00:09:25.620 --> 00:09:26.720
 Komplett.

00:09:26.720 --> 00:09:29.760
 Weil wir machen ja da eh ein Backup davon.

00:09:29.760 --> 00:09:33.180
 Und das ist sehr umfangreich, diese Webseite, muss man wissen.

00:09:33.180 --> 00:09:38.060
 Das sind irgendwie, keine Ahnung, über tausend Seiten mit News und so.

00:09:38.700 --> 00:09:41.480
 Und darauf angesprochen meinten sie dann, ja ne, die News brauchen wir ja nicht.

00:09:41.480 --> 00:09:43.300
 Also sind es nur noch ein paar hundert Seiten.

00:09:43.300 --> 00:09:45.840
 Aber auch die wollten sie also ausgedruckt haben.

00:09:45.840 --> 00:09:51.100
 Und so eine Webseite auf A4 zu bringen, ist immer die Frage, wie sinnvoll das ist.

00:09:51.100 --> 00:09:54.520
 Und eine Seite hat dann halt vielleicht auch mal mehrere A4-Seiten noch.

00:09:54.520 --> 00:09:56.120
 Also wären wir doch wieder bei tausend Seiten gewesen.

00:09:56.120 --> 00:10:02.160
 Und das Ziel war also, also die Chefs, die sind nicht so digital anscheinend.

00:10:02.160 --> 00:10:05.760
 Und die hätten das dann doch gerne in Papierform, um sich den Umfang überhaupt mal vorstellen zu können.

00:10:05.880 --> 00:10:10.940
 Und außerdem würden sie uns dann gerne die Textpassagen auch streichen oder einfügen,

00:10:10.940 --> 00:10:13.840
 die auf der neuen Webseite angepasst werden sollen.

00:10:13.840 --> 00:10:17.080
 Ah nein, auf dem Papier, sehr gut.

00:10:17.080 --> 00:10:20.280
 Ja, also ich will mich jetzt nicht lustig machen, deswegen, ich sag auch keine Namen,

00:10:20.280 --> 00:10:23.200
 aber ich fand's einfach krass, dass es das noch gibt.

00:10:23.440 --> 00:10:30.700
 Also dass Menschen halt wirklich so undigital denken, dass das eine ganz plausible Methode erscheint.

00:10:30.700 --> 00:10:37.360
 Also es gibt auch, wie sag ich das jetzt, ohne jemandem auf die Füße zu treten,

00:10:37.360 --> 00:10:43.700
 es gibt nicht ganz niedrigrangige Mitarbeiter von großen Tech-Unternehmen,

00:10:44.500 --> 00:10:47.520
 deren Workflow auch so aussehen soll, hab ich gehört.

00:10:47.520 --> 00:10:48.580
 Ja.

00:10:48.580 --> 00:10:54.780
 Also die sich Dinge, die digital sind, zur Korrektur ausdrucken lassen,

00:10:54.780 --> 00:10:59.060
 handschriftliche Notizen machen, das dann einscannen und wieder einscannen lassen

00:10:59.060 --> 00:11:03.100
 und dann wieder zurückschicken an denjenigen, der es gebaut hat, der die Änderungen einarbeiten soll.

00:11:03.100 --> 00:11:04.720
 Also das ist Realität.

00:11:04.720 --> 00:11:06.740
 Da bin ich mir relativ sicher, hab ich gehört.

00:11:07.860 --> 00:11:12.540
 Ja, krass. Also ich fand's lustig, dass halt wirklich jemand das Internet ausgedruckt haben möchte.

00:11:12.540 --> 00:11:14.760
 Ja, vor allem auch so viel dann, ne?

00:11:14.760 --> 00:11:19.360
 Weißt du, bei dem, was ich da gehört hab, da geht's um vielleicht ein oder zwei DIN-A4-Seiten,

00:11:19.360 --> 00:11:21.420
 die da am Ende rauskommen, aber halt irgendwie tausend.

00:11:21.420 --> 00:11:26.360
 Und wir würden es gerne einmal alles durchlesen, korrigieren, Korrektur lesen,

00:11:26.360 --> 00:11:30.840
 Passagen streichen und dann bitte wieder durch Magie ins Netz, bitte.

00:11:30.840 --> 00:11:32.100
 Ja, also auch der Aufwand.

00:11:32.100 --> 00:11:34.600
 Also ich meine, der Aufwand für uns alleine, alle Seiten durchzugehen.

00:11:34.600 --> 00:11:37.340
 Also gut, ich hätte einen Crawler geschrieben, der die dann zumindest mal abspeichert.

00:11:37.860 --> 00:11:43.220
 Und das dann auszudrucken und auch zu sichten, dann die Änderungen wieder zu überführen.

00:11:43.220 --> 00:11:45.580
 Ich meine, dafür gibt's ein CMS am Ende.

00:11:45.580 --> 00:11:50.500
 Ja, wir haben's aber, glaube ich, jetzt verargumentiert bekommen, dass das,

00:11:50.500 --> 00:11:53.660
 also dass wir das gerne machen können, aber dass das sehr teuer werden würde.

00:11:53.660 --> 00:11:57.620
 So kann man's immer ganz gut besprechen, ne?

00:11:57.620 --> 00:11:58.740
 Wir würden das schon machen.

00:11:58.740 --> 00:12:01.160
 Hier erstmal so einen Kostenvorhang schlagen.

00:12:01.160 --> 00:12:01.460
 Ja, kein Problem.

00:12:01.460 --> 00:12:05.060
 Wir machen das auch gerne, für diesen Betrag.

00:12:05.060 --> 00:12:07.720
 Ja, für den Betrag hätte ich das gerne gemacht, ja.

00:12:07.860 --> 00:12:12.500
 Ja, du, ich meine, wenn du, wenn du, wenn der Betrag stimmt und du dann sagen kannst,

00:12:12.500 --> 00:12:18.280
 also ich würde den bitte relativ hochschrauben und dann sagen, klar, kein Problem, kostet, kostet 500.000.

00:12:18.280 --> 00:12:21.060
 Ja, ich glaube, das wollten sie dann irgendwie doch nicht mehr.

00:12:21.060 --> 00:12:23.300
 Oh, das ist ja, sehr traurig.

00:12:25.780 --> 00:12:26.100
 Okay.

00:12:26.100 --> 00:12:29.080
 Das war's zum Internet ausdrucken.

00:12:29.080 --> 00:12:32.060
 Dann kommen wir ...

00:12:32.060 --> 00:12:32.620
 Hört ihr mich noch?

00:12:32.620 --> 00:12:33.280
 Ja, ja, ja.

00:12:33.280 --> 00:12:34.600
 Ich bin auch schon gebannt.

00:12:34.600 --> 00:12:34.840
 Voll.

00:12:34.840 --> 00:12:39.840
 Es sah gerade so aus, als ich guck in so ratlose Gesichter.

00:12:39.840 --> 00:12:40.460
 Da ist ja was los.

00:12:40.460 --> 00:12:41.840
 Ähm, genau.

00:12:42.780 --> 00:12:46.880
 Wir reden ja heute auch über Security und es gab ja ein schönes Twitch-Leak.

00:12:46.880 --> 00:12:49.040
 Wir haben in unserem Stream schon drüber gesprochen.

00:12:49.040 --> 00:12:54.560
 Ähm, unendlich viele Repositories und auch Auszahlungsdaten sind geleakt worden.

00:12:54.560 --> 00:12:56.780
 Und, äh, das ist ...

00:12:56.780 --> 00:13:00.360
 Also, natürlich, da wir auch auf Twitch selbst streamen, war das natürlich eine interessante Geschichte.

00:13:00.360 --> 00:13:01.680
 Ähm, ich hab ...

00:13:01.680 --> 00:13:07.060
 Ich sag's mal so, ich hab da mal reingeguckt, äh, in diese Daten und es ist unendlich viel.

00:13:07.060 --> 00:13:08.360
 Und ich kann mir fast ...

00:13:08.360 --> 00:13:12.800
 Also, es ist natürlich möglich, dass jemand so was von außen abschneuchelt, aber irgendwie wirkt's auf mich wie ...

00:13:12.800 --> 00:13:16.360
 Als ob da jemand von innen das irgendwie hat vom Blaster fallen lassen.

00:13:16.360 --> 00:13:17.780
 Es ist so weitreichend.

00:13:17.780 --> 00:13:18.880
 Es sind so viele Sachen.

00:13:18.880 --> 00:13:21.300
 Ähm, es ist ...

00:13:21.300 --> 00:13:23.240
 Ich weiß nicht, hast du's auch mitgekriegt, Freddy?

00:13:23.240 --> 00:13:28.320
 Ja, ich hab's auch gehört und ich fand's relativ abgefahren, weil halt irgendwie alles dabei ist, ne?

00:13:28.320 --> 00:13:31.660
 Von Quellcode über Datenbank bis hin zu Backups und ich weiß es nicht.

00:13:31.680 --> 00:13:33.200
 Also, ich hab's auch nur so ...

00:13:33.200 --> 00:13:35.600
 Ich hab mir den Liegen nicht angeguckt, die haben mir nicht runtergeladen.

00:13:35.600 --> 00:13:38.880
 Aber was ich so gehört hab in den Medien, das ist schon, äh, ist schon abgefahren.

00:13:38.880 --> 00:13:41.700
 Also, man sieht auf Twitter ganz viele Screenshots und so.

00:13:41.700 --> 00:13:47.880
 Und also, teilweise wurden irgendwelche, äh, Fotos auch von, von Whiteboards oder sowas, hab ich mal gesehen.

00:13:47.880 --> 00:13:48.980
 Ähm, krass.

00:13:48.980 --> 00:13:53.140
 Ja, und, und, also wirklich, also wirklich die Repositories mit allen Commits.

00:13:53.140 --> 00:13:54.500
 Also, du kannst dir die komplett anschauen.

00:13:54.500 --> 00:14:00.580
 Du kannst von vor etlichen Jahren, äh, sehen, wie die Dienste sich entwickelt haben und, und auch wie die arbeiten und so.

00:14:00.580 --> 00:14:02.140
 Also, wer wann was committed hat.

00:14:02.140 --> 00:14:02.520
 Krass.

00:14:02.520 --> 00:14:05.040
 Also, es ist, es ist wirklich crazy.

00:14:05.040 --> 00:14:15.440
 Ähm, und wie gesagt, also, dass, dass so, so breit da was rausgetragen wird, ich mein, das ist schon möglich durch ein Leck von außen, aber irgendwie, irgendwie wirkt's auf mich anders.

00:14:15.440 --> 00:14:16.000
 Keine Ahnung.

00:14:16.380 --> 00:14:18.960
 Ich mein, wenn es jemand von außen geschafft hat, dann großen Respekt.

00:14:19.600 --> 00:14:24.860
 Und wenn's halt jemand von außen geschafft hat, dann muss der ja irgendwie wochenlang da beliebig rein und raus gelaufen sein.

00:14:25.080 --> 00:14:33.760
 Also, das ist ja so offensichtlich, so offensichtlich von vielen, mehreren unterschiedlichen Systemen gekommen, ne?

00:14:33.760 --> 00:14:36.700
 Also, von wegen Commit History und Datenbank und das nicht gesehen.

00:14:36.700 --> 00:14:38.580
 Das hast ja normalerweise nicht alles auf der gleichen Kiste.

00:14:39.020 --> 00:14:47.760
 Von daher würde ich davon ausgehen, da hat jemand echt über, über Tage oder Wochen immer wieder rein und, äh, den digitalen LKW vollgeladen und wieder rausgefahren.

00:14:47.760 --> 00:14:49.000
 Also, das fällt halt auf.

00:14:49.000 --> 00:14:50.780
 Das sind ja auch viele Daten.

00:14:50.780 --> 00:14:51.980
 Das fällt halt auch auf.

00:14:51.980 --> 00:14:53.680
 Das taucht auf einer Rechnung auf, so.

00:14:53.900 --> 00:15:04.100
 Das ist, denke ich auch, also, wenn du ne, wenn du ne fitte IT-Abteilung hast und, ähm, ich, ich kenne das, ich hab mit solchen Leuten ab und zu zu tun, ähm, wenn da ungewöhnlicher Traffic ist, dann merken die das auch irgendwann.

00:15:04.100 --> 00:15:12.740
 Also, das, also, wenn du das, wenn du das verstecken willst, dann müsstest du das in ganz kleinen Häppchen machen und dazu ging das zu schnell, weil die Daten relativ aktuell sind auch.

00:15:12.740 --> 00:15:16.560
 Also, das ist nix, was du, was du in fünf Minuten da runterlädst.

00:15:16.560 --> 00:15:30.240
 Ähm, es war ja ein Paket, das allein, das, also, das, das Paket bei, bei BitTorrent und das waren ja lauter ZIP-Dateien, äh, ist ja schon, äh, 135, äh, 125 oder 130 Gigabyte groß gewesen.

00:15:30.240 --> 00:15:32.120
 Also, ja, irre.

00:15:32.120 --> 00:15:36.900
 Wirklich irre und, äh, ja, bin mal gespannt, was da jetzt noch kommt.

00:15:36.900 --> 00:15:41.440
 Wir haben natürlich unseren Streamkey gleich geändert, äh, mit dem Ergebnis, dass wir ihn jetzt gleich nochmal ändern mussten.

00:15:42.100 --> 00:15:44.840
 Weil Twitch gesagt hat, so, wir setzen ihn euch jetzt nochmal zurück.

00:15:44.840 --> 00:16:03.940
 Ähm, also, was da noch, ich bin auch sehr gespannt, was da noch für Fallout kommen wird, was da noch, was in diesen Daten noch entdeckt werden wird, weil das ist so ein riesen, so ein riesen Datensatz, da gibt's bestimmt noch das ein oder andere Spannende zu, zu finden, weil, ich glaub, bis du da irgendwie durchblickst, was da überhaupt alles drin steckt, ähm, das, da muss, muss ich eine Weile mit beschäftigen.

00:16:03.940 --> 00:16:22.580
 Also, ich muss sagen, wenn's kein Inside-Job war, dann hab ich ein bisschen Angst, ähm, weil ich mir denke, okay, wenn, jetzt sind ja schon Profis wahrscheinlich, die an so einem, in so einem großen Unternehmen arbeiten, wenn deren Code so angreifbar ist, dass man da wirklich an alles kommt, also im Endeffekt Zugriff auf, auf alles, ja, ähm, dann will ich nicht wissen, wie angreifbar der Code ist, den ich so fabrizier.

00:16:22.580 --> 00:16:30.840
 Und ich kann noch, äh, als, als letzten Kommentar, oh je, ja, wer weiß, was wir, keine Ahnung, will man gar nicht wissen, ne, ähm, aber wir reden ja heute noch drüber.

00:16:30.840 --> 00:16:31.560
 Genau.

00:16:31.560 --> 00:16:37.960
 Ähm, genau, so, jetzt hab ich den Faden verloren, was wollte ich eigentlich jetzt noch dazu sagen? Sag mal, Konstantin.

00:16:37.960 --> 00:16:39.440
 Bin ich wieder reingegrätscht, hab ich wieder?

00:16:39.440 --> 00:16:42.540
 Ja, du hast, du hast alles wieder kaputt gemacht, ah mein, wir schneiden's nicht raus.

00:16:42.540 --> 00:16:45.440
 Dann sind wir, wir waren bei der These mit dem Inside-Job, glaub ich.

00:16:45.440 --> 00:16:46.100
 Ja.

00:16:46.100 --> 00:16:52.560
 Ähm, egal, egal, wird nicht so wichtig gewesen sein, wenn's mir später wieder einfällt, dann, dann kommt's noch.

00:16:52.580 --> 00:16:52.860
 nach.

00:16:52.860 --> 00:16:54.560
 Genau.

00:16:54.560 --> 00:16:59.700
 Dann, äh, wenn ich das Knöpfchen finde, machen wir doch direkt weiter.

00:16:59.700 --> 00:17:03.020
 Die Property der Woche.

00:17:03.020 --> 00:17:09.660
 Auf die Property der Woche bin ich gestoßen über, äh, CSS Battle.

00:17:09.660 --> 00:17:13.260
 Da hat uns in, in unserem Discord jemand, äh, draufgeschickt.

00:17:13.260 --> 00:17:22.240
 Und das ist, wer das nicht kennt, äh, man kriegt ein Bild, 400x300 Pixel, und muss versuchen, mit CSS und HTML das nachzubauen.

00:17:22.580 --> 00:17:28.840
 Und, ähm, das wird dann durch ein, durch ein Headless Chrome irgendwie gerendert und abgeglichen, und man muss halt möglichst nah da dran kommen.

00:17:28.840 --> 00:17:32.100
 Also 100% erreichen und das Ganze mit möglichst wenig Zeichen.

00:17:32.100 --> 00:17:38.240
 Und, äh, das macht, macht Spaß und man, man lernt, äh, neue Tricks kennen in CSS, die man noch nicht kannte.

00:17:38.840 --> 00:17:40.880
 Und so bin ich auch auf dieses Offset Property gestoßen.

00:17:40.880 --> 00:17:45.780
 Äh, und wer mich, wer mich da mal hinzufügen will, man kann so Freundeslisten anlegen, da kann man seine Scores vergleichen.

00:17:45.780 --> 00:17:47.780
 Den Link packe ich auch in die Shownotes.

00:17:48.400 --> 00:17:51.260
 Und gestoßen bin ich da auf das, äh, Property Offset.

00:17:51.260 --> 00:17:58.180
 Und das ist ein Shorthand Property für Offset Anchor, Offset Distance, Offset Path, Offset Position und Offset Rotate.

00:17:58.180 --> 00:18:00.240
 Und ich hab noch nichts davon gehört.

00:18:00.240 --> 00:18:02.740
 Habt ihr das schon mal gehört, wisst ihr, was das ist?

00:18:02.740 --> 00:18:04.160
 Ich kenn das auch nicht.

00:18:04.160 --> 00:18:04.340
 Nee.

00:18:05.060 --> 00:18:07.780
 Aber ich hab noch auf der Arbeit auch C++ und nicht CSS.

00:18:07.780 --> 00:18:08.300
 Ja, okay.

00:18:08.300 --> 00:18:17.780
 Jedenfalls, ähm, ist das, also bei CSS Battle war's für was ganz komisches verwendet, was ich immer noch nicht durchstiegen hab, was da genau passiert.

00:18:17.780 --> 00:18:22.600
 Aber ich hab mich so ein bisschen gewundert, okay, Offset Path ist eben das eine Property, das damit inbegriffen ist.

00:18:22.600 --> 00:18:30.620
 Und das war dann auch Offset Doppelpunkt Path, Klammer auf, und dann in einfachen Anführungsstrichen M20,20, Leerzeichen C20,10.

00:18:30.620 --> 00:18:32.460
 Und ich dachte, hm, das klingt nach SVG.

00:18:33.100 --> 00:18:36.060
 Und das ist tatsächlich so, dass man da einen SVG-Pfad angeben kann.

00:18:36.060 --> 00:18:42.880
 Und, äh, für was das Ganze am Ende da ist, ist ein Element entlang eines Pfades.

00:18:42.880 --> 00:18:50.520
 Also das kann ein SVG-Pfad sein, kann aber auch, ähm, ein SVG, also ein Element in einem SVG referenziert sein per URL und über die ID von dem Element.

00:18:50.520 --> 00:18:54.360
 Oder einfach nur ein Strahl oder irgendwelche anderen CSS-Shapes.

00:18:54.360 --> 00:19:02.280
 Und ich kann dann mit Keyframes und dem Animation Property mittels dem Offset Position, das ich dann von 0 bis 100 Prozent, äh,

00:19:02.920 --> 00:19:06.680
 eben animieren kann, kann ich dieses Element entlang dieses Pfades bewegen.

00:19:07.320 --> 00:19:10.780
 Also wirklich CSS-native, ähm, Animation von Elementen.

00:19:10.780 --> 00:19:14.480
 Und das fand ich irgendwie krass, dass ich davor noch nie was davon gehört hab.

00:19:14.480 --> 00:19:17.200
 Ähm, ich guck mal hier auf Can I Use.

00:19:17.200 --> 00:19:28.160
 Ich glaube, es ist nämlich, na, 76 Prozent der Edge und Chrome und Firefox können's, Opera kann's, Safari kann's nicht, auch nicht im Technology Preview.

00:19:28.160 --> 00:19:30.840
 Ähm, das heißt Safari mal wieder so das Schlusslicht.

00:19:30.960 --> 00:19:33.200
 Ansonsten sieht das echt ganz, ganz cool aus.

00:19:33.200 --> 00:19:36.380
 Ja, und auch relativ witzig.

00:19:36.380 --> 00:19:40.100
 Also von der Funktionalität hätte ich auch einfach keine SVG-Pfad in CSS erwartet.

00:19:40.100 --> 00:19:41.400
 Ja, richtig, richtig.

00:19:41.400 --> 00:19:48.600
 Ich find's nur ein bisschen schwierig, dass dann, ähm, also ich hab versucht, damit rumzuspielen, weil ich wissen wollte, was die da genau gemacht haben, um diesen Effekt zu erreichen, den die da gemacht haben.

00:19:49.060 --> 00:19:54.680
 Ich, ich steig nicht so ganz durch. Ich hab mir den Pfad dann in SVG kopiert, aber irgendwie, äh, wurde da auch nix angezeigt.

00:19:54.680 --> 00:20:01.920
 Also ich frag mich, wie man da ohne Tooling das schafft, dann tatsächlich, ähm, das in der Seite jetzt einzubauen.

00:20:01.920 --> 00:20:06.640
 Also ich muss ja dann, dann schon irgendwie eine grobe Vorstellung haben, wie verläuft dieser Pfad.

00:20:06.640 --> 00:20:11.120
 Also mach ich mir vielleicht erstmal dann so ein Outline-Red oder so, dass ich überhaupt irgendwas sehen kann.

00:20:11.120 --> 00:20:15.260
 Ähm, ich kann's mir in der Praxis noch nicht so ganz vorstellen, aber es ist cool, dass es das gibt.

00:20:16.040 --> 00:20:22.500
 Dann braucht man nicht mehr solche, so CSL, äh, JS-Libraries wie Greensock oder so vielleicht für einfache Animationen.

00:20:22.500 --> 00:20:30.280
 Ähm, also bin mal gespannt. Ich hab jetzt noch keine richtig geilen Demos gefunden, nur so diese MDN-Geschichten, wo einfach so ein Pfeil da entlang fliegt.

00:20:30.280 --> 00:20:36.960
 Aber man kann zum Beispiel mit diesem, ähm, Offset-Rotate auch wirklich sagen, dass der Pfeil sich dreht, während er diesem Pfad folgt.

00:20:36.960 --> 00:20:41.860
 Und so, ne, das ist ja nicht statisch, einfach nur das Element fliegt rum, sondern es dreht sich dann auch in die entsprechende Richtung.

00:20:41.860 --> 00:20:44.040
 Ähm, das fand ich, fand ich ziemlich cool.

00:20:45.060 --> 00:20:56.020
 Das ist in der Tat sehr cool. Was ich mich gerade frage, ist, ähm, hat jemals jemand schon mal diese, ähm, SVG-Path-Syntax manuell geschrieben?

00:20:56.020 --> 00:21:02.800
 Also ich hab den schon ganz oft gelesen und für mich war immer so, aha, ja, das ist wohl Maschinengeneriert, aber ich weiß überhaupt gar nicht, was der besagt, ehrlich gesagt.

00:21:02.800 --> 00:21:07.840
 Von daher, ich bin gerade immer davon ausgegangen, dass das, äh, okay.

00:21:07.840 --> 00:21:20.240
 Ne, also ich glaube, es gibt tatsächlich SVG-Cracks, die das können. Also ich weiß halt nur, dass, ähm, ich glaub, Großbuchstaben und Kleinbuchstaben ist der Unterschied, ob es dann absolut oder relativ positioniert ist, aber ich kann dir jetzt nicht mal sagen, äh, was davon was ist, ob jetzt groß oder klein.

00:21:20.480 --> 00:21:28.540
 Und dann hast du halt, ähm, einfach Pixelwerte. Aber das ist ja bei SVG auch immer nicht so einfach, was, was ist jetzt ein, oder eigentlich Koordinaten eben, nicht mal zwangsweise Pixel.

00:21:28.880 --> 00:21:39.720
 Weil es gibt ja noch ein Viewport-Attribut, dass das dann nochmal beeinflusst, wie das skaliert wird. Und da kann ich mir eben auch noch nicht vorstellen, muss ich da was berücksichtigen, wenn das auf der Sky-Seite irgendwie skaliert und so.

00:21:39.720 --> 00:21:48.680
 Also wie das am Ende, wie ich da, ich sag jetzt, ich möchte das so und so animiert haben und wie ich dann da hinkomme mit dem Pfad, den selber zu schreiben und so, ist mir auch noch so ein bisschen ein Rätsel.

00:21:50.980 --> 00:21:52.320
 Ja, aber haben es besser als brauchen.

00:21:52.320 --> 00:22:16.920
 Ja, und das war's eigentlich auch schon. Also vielleicht, wenn jemand alten Code noch findet, so alte Demos oder Artikel da drüber, es hieß mal ursprünglich, äh, Motion, also die ganze Speck nennt sich auch Motion Path Module und, ähm, das hieß, äh, da gab's dann Attribute, die klangen so wie die jetzigen, also statt Offset Anchor dann irgendwie Motion Anchor, ähm, Offset Rotate hieß, glaub ich, Motion Rotation.

00:22:16.920 --> 00:22:24.100
 Ähm, also falls man da drauf stößt, das ist das gleiche wie dieses neue Offset. Ja, und das war's eigentlich auch schon dazu.

00:22:24.100 --> 00:22:26.360
 Cool. Vielen Dank.

00:22:26.360 --> 00:22:30.040
 Ja, und jetzt haben wir ja was, was Neues mal tatsächlich, ne?

00:22:30.040 --> 00:22:46.900
 Ah, stopp, stopp, ich hab noch, ich hab noch, ich hab noch, es kommt noch schnell was zwischen rein, bevor das Neue kommt, bevor das Neue kommt mit dem neuen Jingle, weil wir das jetzt noch gar nicht so richtig gemacht haben, ähm, wir haben unseren Gast noch gar nicht so richtig vorgestellt, äh, stimmt, ja, ähm, ich wollte noch sagen, ja, also, äh, ich, ich find, ich find's immer, ähm, doof, wenn man sich selbst vorstellen

00:22:46.900 --> 00:23:10.900
 muss, ich stell dich jetzt nur so ganz, ganz grob vor, was man so auf deiner Webseite über dich lesen kann, also, Frederik Braun ist bei uns heute zu Gast, äh, und er ist Staff Security Engineer bei Mozilla, ähm, und da über seine Arbeit und was er da so macht, teilweise reden wir dann gleich noch im Thema, ähm, genau, und jetzt, um dich ein bisschen besser kennen zu lernen, äh, Frederik, äh, haben wir uns eine neue Rubrik ausgedacht, ein neues Spiel.

00:23:10.900 --> 00:23:18.680
 Das, äh, das, äh, du weißt, du weißt schon, ich hab's dir vorher schon gesagt, gell, äh. Ich spiel mal den Jingle und dann erklärst du kurz, um was es geht, oder?

00:23:18.680 --> 00:23:19.620
 Alles klar, genau.

00:23:19.620 --> 00:23:23.720
 W-W-S-I-V. Entscheide dich.

00:23:23.720 --> 00:23:40.880
 Genau, entscheide dich, also, es ist, äh, ich bin jetzt ganz ehrlich, ähm, es ist ein Rip-Off von zwei verschiedenen Dingen, ein Ding, das entscheide dich heißt, nämlich beim Neomagazin, äh, Royal hatten die das mal, entscheide dich, allerdings werden da so mehr so lustige Quatschfragen,

00:23:40.880 --> 00:24:04.660
 und dann gibt es bei dem, äh, hab ich ja schon öfter erwähnt, der Podcast, ähm, alles gesagt von, von der Zeit, von der Zeit, von der Zeit, von der Zeitung Die Zeit, ähm, haben die ein Thema, die nennen das A, B oder Weiterspiel und ich find den Namen fürchterlich, äh, aber das Spiel ist gut, fand ich, und, ähm, ich glaube, das ist vielleicht ganz gut, um unseren, ähm, allgemein, um Gäste, äh, ein bisschen besser kennenzulernen, bevor man so tief ins Thema einsteigt.

00:24:04.660 --> 00:24:22.660
 Und das Spiel funktioniert so, ähm, es sind ganz einfache, schnelle Entscheidungsfragen, äh, sowas wie CD oder USB-Stick, äh, frag ich, und dann sollst du möglichst schnell antworten, was dir als erstes sofort in den Sinn kommt, eins von beiden, also dann CD oder USB-Stick eben, ähm, ähm, und dann geht's sofort weiter mit der nächsten Frage.

00:24:22.660 --> 00:24:49.340
 Es gibt auch keine Erklärung, ist nicht erlaubt zwischendrin, kann man gerne im Anschluss drüber sprechen, warum, falls, äh, äh, manchmal haben die Leute, äh, des Bedürfens sich zu, zu, dazu zu erklären, warum, warum sie sich für was entschieden haben, ähm, und man darf auch weitersagen, äh, aber, ähm, nur zehn Prozent, äh, der Fragen darf weitergesagt werden, ich hab jetzt grad nochmal nachgeguckt, das sind, glaube ich, warte, Moment, äh, äh, äh, du darfst dreimal weitersagen, Konstantin zählt mit.

00:24:49.340 --> 00:24:50.140
 Ich zähle mit.

00:24:50.140 --> 00:24:50.400
 Mhm.

00:24:50.400 --> 00:24:52.420
 Genau, und wir machen das, und es geht ganz flott.

00:24:52.660 --> 00:24:54.260
 Äh, äh, und jetzt geht's los.

00:24:54.260 --> 00:24:55.780
 Katze oder Hund?

00:24:55.780 --> 00:24:57.140
 Katze.

00:24:57.140 --> 00:24:59.240
 Butterfly oder mechanisch?

00:24:59.240 --> 00:25:02.440
 Äh, Butterfly.

00:25:02.440 --> 00:25:04.560
 Papier oder E-Book?

00:25:04.560 --> 00:25:06.020
 Papier.

00:25:06.020 --> 00:25:07.960
 Besitzen oder streamen?

00:25:07.960 --> 00:25:10.980
 Ähm, besitzen.

00:25:10.980 --> 00:25:14.200
 Besitzen oder streamen?

00:25:14.200 --> 00:25:16.500
 Besitzen.

00:25:16.500 --> 00:25:18.180
 Luke oder Han?

00:25:22.180 --> 00:25:22.740
 Luke.

00:25:22.740 --> 00:25:22.800
 Luke.

00:25:22.800 --> 00:25:26.020
 Dark-Mode oder Light-Mode?

00:25:26.020 --> 00:25:27.220
 Dark-Mode.

00:25:27.220 --> 00:25:28.960
 RGB oder Hex?

00:25:28.960 --> 00:25:30.940
 RGB.

00:25:30.940 --> 00:25:33.060
 Pixel oder Vektor?

00:25:33.060 --> 00:25:36.800
 Warte mal, Hex ist doch RGB, Pixel oder Vektor, ich kann nur Pixel.

00:25:36.800 --> 00:25:38.300
 Okay.

00:25:38.300 --> 00:25:39.720
 Schwarz oder Weiß?

00:25:39.720 --> 00:25:41.540
 Schwarz.

00:25:41.540 --> 00:25:43.440
 Black-Hat oder White-Hat?

00:25:43.440 --> 00:25:45.800
 Ja, White-Hat.

00:25:47.080 --> 00:25:49.280
 W3C oder Watt-WG?

00:25:49.280 --> 00:25:52.360
 Ähm, beides in meinem Fall tatsächlich.

00:25:52.360 --> 00:25:53.740
 W3C oder Watt-WG?

00:25:53.740 --> 00:25:54.840
 Ich arbeite bei beiden mit.

00:25:54.840 --> 00:25:57.260
 Ich arbeite bei beiden mit.

00:25:57.260 --> 00:25:59.380
 W3C oder Watt-WG?

00:25:59.380 --> 00:26:00.240
 Du kannst weiter sagen.

00:26:00.240 --> 00:26:00.700
 Weiter.

00:26:00.700 --> 00:26:03.160
 Nano oder VI?

00:26:03.160 --> 00:26:04.960
 VI.

00:26:05.600 --> 00:26:06.480
 E-Max oder VI?

00:26:06.480 --> 00:26:08.160
 VI.

00:26:08.160 --> 00:26:09.980
 Yubi-Key oder Passwort?

00:26:09.980 --> 00:26:12.420
 Weiter.

00:26:12.420 --> 00:26:15.000
 Passwort oder SSH-Key?

00:26:15.000 --> 00:26:17.120
 SSH-Key.

00:26:17.120 --> 00:26:18.820
 iOS oder Android?

00:26:18.820 --> 00:26:20.520
 iOS.

00:26:21.380 --> 00:26:22.240
 Mac OS oder Linux?

00:26:22.240 --> 00:26:23.420
 Linux.

00:26:23.420 --> 00:26:25.220
 So, hast schon geschafft.

00:26:25.220 --> 00:26:26.060
 Brauchst du noch so ein Bing?

00:26:26.060 --> 00:26:27.880
 Ja, aber ich hab hohe Rechtsfertigungsbedarf.

00:26:27.880 --> 00:26:31.380
 Bei weiter brauchst du noch so ein Bing-Sound.

00:26:31.380 --> 00:26:32.660
 Das ich für gar nichts rechtfertigen.

00:26:32.660 --> 00:26:34.020
 Alles gut, du kannst gerne.

00:26:34.020 --> 00:26:34.520
 Das stimmt.

00:26:34.520 --> 00:26:37.000
 Man müsste eigentlich so Bing-Sounds haben noch.

00:26:37.000 --> 00:26:37.440
 Das stimmt.

00:26:37.440 --> 00:26:40.720
 Ja, wie gesagt, hohe Rechtsfertigungsbedarf.

00:26:40.720 --> 00:26:41.960
 Oder so ein Wasser so.

00:26:41.960 --> 00:26:46.660
 Bei sowas wäre es total lustig, ja genau, richtig und falsch zu bewerten, obwohl es kein richtig

00:26:46.660 --> 00:26:47.400
 oder falsch gibt.

00:26:47.400 --> 00:26:50.960
 Das ist auch richtig assi, da wird es natürlich auch nicht mehr schlimm.

00:26:51.380 --> 00:26:55.200
 Okay, vielen Dank, dass du dich drauf eingelassen hast.

00:26:55.200 --> 00:26:56.640
 Ja, witzig.

00:26:56.640 --> 00:26:57.920
 Ja, genau.

00:26:57.920 --> 00:26:59.140
 Ich muss mich beschweren.

00:26:59.140 --> 00:27:03.500
 Ich bin tatsächlich bei iOS, aber ich bin auch mit iOS nicht zufrieden, um das nochmal

00:27:03.500 --> 00:27:05.560
 hier ganz ausdrücklich zu sagen.

00:27:05.560 --> 00:27:07.400
 Und ich pendel so hin und her.

00:27:07.400 --> 00:27:11.540
 Ich finde es auf iOS mega ärgerlich, dass ich nicht den Browser meiner Wahl benutzen darf

00:27:11.540 --> 00:27:13.600
 oder nicht die Rendering-Engine meiner Wahl.

00:27:13.600 --> 00:27:17.580
 Den Browser meiner Wahl kann ich ja mehr oder weniger schon benutzen, aber es ist halt

00:27:17.580 --> 00:27:18.180
 alles Webkit.

00:27:18.180 --> 00:27:21.100
 Und bei Android gibt es halt viele andere Probleme.

00:27:21.380 --> 00:27:25.600
 Also entweder kaufe ich mir jedes Jahr ein neues Handy oder ich kriege nicht ordentliche

00:27:25.600 --> 00:27:31.500
 Updates und ich muss meinen kompletten Datenschutz irgendwie aufgeben, was ja bei iOS ein

00:27:31.500 --> 00:27:34.780
 Tacken besser ist, aber jetzt auch nicht unfassbar geil.

00:27:34.780 --> 00:27:40.860
 Und ich könnte jetzt richtig abranten, aber dafür bin ich ja nicht in der Show.

00:27:41.200 --> 00:27:46.240
 Aber leider ist es ja bei Mobiltelefon so, man muss sich für eins entscheiden.

00:27:46.240 --> 00:27:48.360
 Da ist es ja wirklich entweder oder.

00:27:48.360 --> 00:27:49.640
 Da gibt es kein weiter.

00:27:49.640 --> 00:27:51.320
 Ja, Firefox OS.

00:27:51.320 --> 00:27:53.400
 Ja, das war cool.

00:27:53.400 --> 00:27:54.920
 Das war echt cool.

00:27:54.920 --> 00:27:56.400
 Technisch gesehen.

00:27:56.400 --> 00:27:58.880
 Das hat natürlich auch seine Tücken.

00:27:58.880 --> 00:28:01.120
 Ich habe tatsächlich an Firefox OS mitgearbeitet.

00:28:01.120 --> 00:28:03.020
 Von daher bin ich dann natürlich mega biased.

00:28:03.340 --> 00:28:05.120
 Ja, da haben wir mit Chris Heilmann auch drüber gesprochen.

00:28:05.120 --> 00:28:06.780
 Der war ja dann auch involviert.

00:28:06.780 --> 00:28:08.820
 Das habe ich tatsächlich als Vorbereitung gehört.

00:28:08.820 --> 00:28:10.640
 Das war echt eine mega coole Zeit.

00:28:10.640 --> 00:28:15.460
 Und ich glaube, so witzig, so witzig wie das jetzt ist, wenn man sich anguckt, was für

00:28:15.460 --> 00:28:19.140
 Web APIs in den letzten Jahren dazugekommen ist, Firefox OS war einfach zu früh.

00:28:19.740 --> 00:28:23.680
 So, die ganzen APIs, wo wir damals gesagt haben, oh krass, wie erfinden wir die jetzt?

00:28:23.680 --> 00:28:24.840
 Wie machen wir die ergonomisch?

00:28:24.840 --> 00:28:26.820
 Wie bauen wir die in unsere eigenen Apps ein?

00:28:26.820 --> 00:28:29.060
 Wie erklären wir das Entwicklern, die Apps für uns schreiben sollen?

00:28:29.060 --> 00:28:30.480
 Die gibt es halt jetzt alle.

00:28:30.480 --> 00:28:35.320
 Und da gibt es dann halt mehr oder weniger gute Anleitungen und Spezifikationen zu.

00:28:35.320 --> 00:28:40.380
 Von Device Motion bis hin zu, habe ich vergessen.

00:28:40.380 --> 00:28:41.840
 Gibt es jetzt einfach.

00:28:41.840 --> 00:28:47.180
 Ja, ich hatte damals auch den Eindruck, dass Firefox OS ein extremer Innovationstreiber war, was

00:28:47.180 --> 00:28:53.340
 APIs anging, weil wenn du in US auf dem Browser basierst, brauchst du ja, musst du ja irgendwie

00:28:53.340 --> 00:28:55.240
 aufs System kommen bei allen möglichen Sachen.

00:28:55.240 --> 00:28:56.220
 Ja, voll.

00:28:56.220 --> 00:29:01.500
 Und das fand ich total, also mein Liebling aus der Zeit ist immer noch die Vibration-API,

00:29:01.500 --> 00:29:04.180
 wobei ich gar nicht sicher bin, ob die überhaupt noch irgendwo unterstützt wird.

00:29:04.180 --> 00:29:08.120
 Aber das fand ich total faszinierend, dass du irgendwie mit so einem kleinen Array mit so

00:29:08.120 --> 00:29:10.420
 Zeitangaben sagen kannst, jetzt vibriere mal so und so.

00:29:10.420 --> 00:29:13.380
 Das ist total cool, dass ich plötzlich sowas mit dem Handy machen konnte.

00:29:13.380 --> 00:29:14.260
 Keine Ahnung, ob die irgendwo.

00:29:14.260 --> 00:29:18.880
 Ja, ja, es gab auch relativ viele coole HTML5-Games, die da so raus entstanden sind aus eben

00:29:18.880 --> 00:29:22.860
 diesen APIs, weil viele Leute gesagt haben so, ich will mal was machen, aber ich weiß nicht,

00:29:22.860 --> 00:29:25.240
 was ich machen soll, ich probiere mal, ich fange mit dem Spiel an.

00:29:25.240 --> 00:29:30.580
 Und es sind echt ein paar witzige rausgekommen, die dann halt so obskure Interaktionen haben

00:29:30.580 --> 00:29:32.960
 mit Vibrate und so weiter.

00:29:35.100 --> 00:29:36.640
 Aber das wurde ja leider nichts.

00:29:36.640 --> 00:29:43.200
 Also es lebt weiter als, wie soll ich sagen, nicht als Smartphone-Betriebssystem, sondern

00:29:43.200 --> 00:29:46.140
 eher so als internetfähiges Feature-Phone-Betriebssystem.

00:29:46.140 --> 00:29:49.120
 Ich habe noch so ein altes Android rumliegen.

00:29:49.120 --> 00:29:52.440
 Vielleicht gibt es irgendwie eine Möglichkeit, da was drauf zu spielen.

00:29:52.800 --> 00:29:54.200
 Das wäre irgendwie spaßig.

00:29:54.200 --> 00:29:55.460
 Also ich würde es total gerne mal benutzen.

00:29:55.460 --> 00:30:00.780
 Ich habe immer nur den Simulator benutzt und habe dann so gedacht, Mensch, das mal auf

00:30:00.780 --> 00:30:02.080
 einem echten Gerät zu benutzen.

00:30:02.080 --> 00:30:04.820
 Vielleicht sollte man es irgendwann nochmal weiterentwickeln, weil es ist ja so die richtige

00:30:04.820 --> 00:30:06.340
 Philosophie dahinter, so aus meiner Sicht.

00:30:07.320 --> 00:30:11.360
 Grundgemäß ist es relativ schwierig, das auf Geräte zu bringen, weil du immer so Treiberprobleme

00:30:11.360 --> 00:30:11.540
 hast.

00:30:11.540 --> 00:30:16.320
 Das Einfachste ist, glaube ich, tatsächlich, wenn du in so eine Telefonbude in der Innenstadt

00:30:16.320 --> 00:30:20.680
 gehst und dir so ein, dir vorher eine Einkaufsliste macht, welche Telefone das sein können.

00:30:20.680 --> 00:30:25.100
 Es gibt ein paar von, ich glaube sogar von Nokia, dieses gelbe Bananen-Phone wurde wieder aufgelegt

00:30:25.100 --> 00:30:27.260
 und da ist tatsächlich ein KaiOS drauf.

00:30:27.260 --> 00:30:29.300
 Das ist der inoffizielle Nachfolger.

00:30:29.300 --> 00:30:35.160
 Also die haben es geforkt und verkaufen es relativ erfolgreich in, ich glaube, Indien, Indonesien

00:30:35.160 --> 00:30:37.300
 und so weiter als Feature-Phone.

00:30:37.300 --> 00:30:41.740
 Die verkaufen es nicht als Smartphone, aber es ist halt internetfähig und es ist komplett

00:30:41.740 --> 00:30:43.260
 HTML5-JavaScript basiert.

00:30:43.260 --> 00:30:48.040
 Und das ist relativ cool, aber es kann halt nicht so viel wie ein Smartphone, aber es kann

00:30:48.040 --> 00:30:52.420
 halt definitiv mehr als so ein Feature-Phone, wie so ein Knochen.

00:30:52.420 --> 00:30:57.200
 Da kann man ein bisschen Spaß mit haben tatsächlich, aber es ist halt auch sehr obskur.

00:30:57.200 --> 00:31:03.000
 Aber in Indonesien, oder ich bin mir nicht sicher, was deren Hauptmarkt ist, aber da sind

00:31:03.000 --> 00:31:07.540
 die tatsächlich irgendwie so das zweitbeliebteste Betriebssystem für Mobiltelefone, was schon

00:31:07.540 --> 00:31:08.400
 relativ cool ist.

00:31:08.400 --> 00:31:13.740
 Hinter Android natürlich, die auch einfach irre günstig sind in den Kategorien dort.

00:31:13.740 --> 00:31:16.740
 Ja, spannendes Thema.

00:31:16.740 --> 00:31:20.540
 Also wer mehr darüber noch hören will über Firefox OS, in unserer Folge mit Chris Heilmann,

00:31:20.540 --> 00:31:22.360
 Nummer 27, gerne mal reinhören.

00:31:24.260 --> 00:31:29.100
 Judi, dann kommen wir jetzt tatsächlich echt zum Thema.

00:31:29.100 --> 00:31:30.380
 Jawohl.

00:31:30.380 --> 00:31:32.820
 Und ich habe wieder das falsche Fenster offen und Moment.

00:31:32.820 --> 00:31:33.180
 Soll ich?

00:31:33.180 --> 00:31:33.920
 Nee, ich mache.

00:31:33.920 --> 00:31:37.800
 Hier ist WWS IV mit dem Tagesthema.

00:31:44.800 --> 00:31:50.560
 Wir haben es vorhin schon so angekündigt, so ein bisschen, dass es um was Sicherheitstechnisches

00:31:50.560 --> 00:31:50.800
 geht.

00:31:50.800 --> 00:31:51.620
 Genau.

00:31:51.620 --> 00:31:55.480
 Und ich weiß nicht, ob man das verstanden hat, was ich da am Anfang vor dem Intro überhaupt

00:31:55.480 --> 00:31:56.120
 gefaselt habe.

00:31:56.120 --> 00:31:57.580
 Wir desinfizieren das Internet.

00:31:57.580 --> 00:32:02.380
 Also die Anspielung war Hand Sanitizer, nennt man auf Englisch solche, diese, was man halt

00:32:02.380 --> 00:32:04.740
 gerade in Corona-Zeiten immer hat, dieses Handdesinfektionsmittel.

00:32:04.740 --> 00:32:08.300
 Deswegen, es geht um die HTML Sanitizer API.

00:32:09.500 --> 00:32:11.480
 Genau, und dafür haben wir unseren Gast eingeladen.

00:32:11.480 --> 00:32:19.000
 Und vielleicht nochmal so als kurze Einleitung dazu, ich erinnere mich, dass wir mal sehr,

00:32:19.000 --> 00:32:24.600
 das ist sehr, sehr lange her, in diesem Podcast über Security gesprochen haben und wo ich dann

00:32:24.600 --> 00:32:30.520
 gesagt habe, Mensch, es müsste doch irgendwie so eine native API geben, wo ich irgendwie Code

00:32:30.520 --> 00:32:33.180
 reinschmeiß und am Ende irgendwie was Sicheres rauskommt.

00:32:33.180 --> 00:32:34.360
 Das müsste doch der Browser machen können.

00:32:34.360 --> 00:32:35.420
 So lange ist das noch gar nicht her.

00:32:35.420 --> 00:32:36.240
 Das war im Juni.

00:32:36.240 --> 00:32:38.980
 Folge 28 haben wir das schon mal angesprochen.

00:32:39.360 --> 00:32:41.520
 Nee, das, was ich meine, das war noch viel früher.

00:32:41.520 --> 00:32:42.440
 Noch, noch früher, okay.

00:32:42.440 --> 00:32:43.960
 Das war noch, das war eine andere Folge.

00:32:43.960 --> 00:32:46.240
 Weil über die, über die Sanitizer API haben wir schon mal kurz, haben wir schon kurz angerissen.

00:32:46.240 --> 00:32:49.880
 Ja genau, aber damals, in dieser Folge, die ich meine, das suche ich nochmal raus, wann

00:32:49.880 --> 00:32:52.300
 das war, da wusste ich noch nicht, dass es die API gibt.

00:32:52.300 --> 00:32:56.320
 Im Anschluss daran wurden wir per Twitter drauf hingewiesen, ey, das, was du dir da wünschst,

00:32:56.320 --> 00:32:57.380
 das gibt es doch schon.

00:32:57.380 --> 00:33:00.640
 Hier, guck mal, da gibt es diesen, diesen Draft, lies doch mal.

00:33:00.640 --> 00:33:02.580
 So sind wir da überhaupt mal drauf gestoßen.

00:33:02.580 --> 00:33:05.680
 Und ich dachte, ah, cool, das ist genau das, was man eigentlich haben will.

00:33:05.680 --> 00:33:09.140
 Und interessanterweise, ähm, hab ich dann gesehen,

00:33:09.220 --> 00:33:12.460
 das, was man, das, was man immer gesagt kriegt dann, wenn man ein JavaScript verwendet,

00:33:12.460 --> 00:33:14.140
 was man dann nehmen soll, ist Dom Purify.

00:33:14.140 --> 00:33:18.120
 Und, äh, das ist die, wenn ich es richtig gesehen hab, um jetzt nicht zu viel vorweg

00:33:18.120 --> 00:33:23.300
 zu nehmen, ähm, das ist auch so ein bisschen Vorbild für diese API, wenn ich es richtig

00:33:23.300 --> 00:33:23.900
 verstanden hab.

00:33:24.000 --> 00:33:27.000
 Aber da können wir jetzt gleich noch ganz tief drin einsteigen, genau.

00:33:27.000 --> 00:33:31.160
 Vielleicht erzählst du einfach mal, wie es dazu gekommen ist, dass ihr angefangen habt, diesen

00:33:31.160 --> 00:33:32.060
 Standard zu entwickeln.

00:33:32.940 --> 00:33:37.020
 Also, es gibt so eine, es gibt so eine, es gibt so eine spezifische Geschichte für den Standard, aber

00:33:37.020 --> 00:33:40.340
 es gibt so eine persönliche Geschichte und das ist relativ witzig, weil bei mir fängt

00:33:40.340 --> 00:33:43.200
 es mehr oder weniger auch mit Firefox OS wieder an.

00:33:43.200 --> 00:33:47.300
 Wir haben nämlich gemerkt, dass wir an ganz vielen Stellen das Problem haben, dass wir eigentlich

00:33:47.300 --> 00:33:50.600
 User-Generated Content in irgendeiner Form erlauben wollen.

00:33:51.280 --> 00:33:56.160
 Aber wir wollen halt nicht beliebiges HTML in der Form erlauben, als dass dann, ähm,

00:33:56.160 --> 00:34:01.720
 die, äh, das ganze Markup, die ganze Webseite irgendwie, die ganze Web-App, die ganze Mobile-App

00:34:01.720 --> 00:34:07.040
 in dem Sinne, ähm, abschmiert und da jemand Skripte einfügt und so weiter, äh, sondern wir

00:34:07.040 --> 00:34:09.280
 wollten halt sagen, wir wollen bestimmtes HTML erlauben.

00:34:09.280 --> 00:34:12.600
 Und damals hatten wir schon gesagt, so, mh, eigentlich wäre das geil, wenn es einen Sanitizer

00:34:12.600 --> 00:34:12.920
 gab.

00:34:12.920 --> 00:34:17.820
 Und ich hab mal für Spaß rausgeguckt, es gab eine Mailing-Listen-Diskussion zu dem Thema, müsste

00:34:17.820 --> 00:34:20.440
 doch mal jemand machen im Jahr 2012.

00:34:21.280 --> 00:34:23.940
 Ähm, hat aber leider damals keiner gemacht.

00:34:23.940 --> 00:34:27.620
 Und, ähm, genau.

00:34:27.620 --> 00:34:37.080
 Und, ja, das, das Thema ist so ein bisschen in mir gereift, einfach, einfach über die

00:34:37.080 --> 00:34:42.840
 Zeit und es ist, ähm, weiß nicht, müssen wir, sollen wir vielleicht nochmal kurz über

00:34:42.840 --> 00:34:44.360
 Cross-Site-Scripting sprechen eigentlich?

00:34:44.360 --> 00:34:45.200
 Macht das nochmal Sinn?

00:34:45.200 --> 00:34:46.040
 Ja, auf jeden Fall, ja, das, ja.

00:34:46.040 --> 00:34:46.660
 Unbedingt.

00:34:46.660 --> 00:34:47.900
 Dann machen wir das vielleicht.

00:34:47.900 --> 00:34:49.960
 Die Frage ist eigentlich, ja, wozu braucht man das überhaupt?

00:34:50.820 --> 00:34:53.580
 Genau, das ist, glaube ich, das, ähm, das Schönere mit dem Anfang.

00:34:53.580 --> 00:35:00.360
 Also, eine ganz typische und ich glaube, was, ähm, ähm, ähm, einfache Statistiken

00:35:00.360 --> 00:35:04.380
 angeht, ist es, glaube ich, tatsächlich die am häufigsten vorkommendste Schwachstelle

00:35:04.380 --> 00:35:05.660
 in Software im Allgemeinen.

00:35:05.660 --> 00:35:07.060
 Cross-Site-Scripting.

00:35:07.480 --> 00:35:11.300
 Der Name ist irgendwie aus den 90ern und ist auch eigentlich ein Kackname, denn ich glaube,

00:35:11.300 --> 00:35:17.540
 das richtigere Wort, wenn man es verstehen möchte, ist HTML-Injection oder Script-Injection, weil

00:35:17.540 --> 00:35:22.180
 das, was man nämlich hat, ist, wir gehen mal von einer ganz einfachen Webseite aus, da ist

00:35:22.180 --> 00:35:25.480
 irgendwie ein Formular und du tippst deinen Namen ein und dann sagt die Webseite, hallo,

00:35:25.480 --> 00:35:27.260
 Frederik oder wie auch immer.

00:35:28.260 --> 00:35:31.920
 Und, äh, wenn man da halt HTML reinschreibt, zum Beispiel ein offenes Script-Element und

00:35:31.920 --> 00:35:37.440
 dann JavaScript, ähm, und dann auf, auf Abschicken klickt, dann kriegt man halt nicht den

00:35:37.440 --> 00:35:42.340
 eigenen Namen zurück, sondern JavaScript und dann hat man ja im weitesten Sinne den Code

00:35:42.340 --> 00:35:44.300
 der Anwendung, auf der man gerade ist, verändert.

00:35:44.840 --> 00:35:49.000
 Das ist für den Fall, dass ich das halt selber eintippe und auf Absenden klicke, ist es

00:35:49.000 --> 00:35:54.360
 natürlich total banal und nicht besonders sinnvoll, aber, ähm, stellen wir uns einfach

00:35:54.360 --> 00:35:59.940
 vor, dass, äh, dass der Parameter ausgelesen wird aus einem URL-Parameter oder sonst was, ähm,

00:35:59.940 --> 00:36:05.640
 und beliebige Angreifer halt mit einem präparierten Link, also Opfer klickt auf Link, geht auf

00:36:05.640 --> 00:36:10.000
 die Webseite und es wird halt nicht irgendein Name angezeigt, sondern Script, die vom Angreifer

00:36:10.000 --> 00:36:10.740
 geschrieben wurden.

00:36:11.580 --> 00:36:16.880
 Das ist Cross-Sat-Scripting und Cross-Sat-Scripting hat das Potenzial halt wirklich deine komplette

00:36:16.880 --> 00:36:25.380
 Webseite komplett und vollständig umzugestalten, was daran liegt, dass, ähm, natürlich es

00:36:25.380 --> 00:36:29.880
 unheimlich viele, äh, Web-APIs gibt, wie natürlich jeder Frontendentwickler weiß, dass

00:36:29.880 --> 00:36:33.840
 man die Webseite halt einfach umschreiben kann, aber was halt noch ein bisschen abgefahrener

00:36:33.840 --> 00:36:39.920
 ist mit Technologien wie, wie Service-Workern, aber auch aufgrund der Tatsache, äh, dass es

00:36:39.920 --> 00:36:46.040
 Sachen gibt, wie Broadcast-Channel und Post-Message und natürlich iFrames und die Same-Origin-Policy,

00:36:46.040 --> 00:36:50.420
 bezieht es sich manchmal auch nicht einfach nur auf diesen einen Tab, sondern vielleicht

00:36:50.420 --> 00:36:56.420
 sogar auf alle Tabs, die in dieser Webseite geöffnet werden, solange sie Same-Origin sind.

00:36:56.420 --> 00:37:01.920
 Das heißt, ähm, was ein Angreifer machen kann, im einfachsten Fall ist natürlich einfach

00:37:01.920 --> 00:37:06.040
 Formulare umschreiben und dann werden irgendwelche Passwörter nicht dahin gesendet, wo sie eigentlich

00:37:06.040 --> 00:37:13.040
 hingesendet werden sollen, sondern vielleicht an den Server des Angreifers, ähm, und, äh,

00:37:13.040 --> 00:37:17.940
 aufgrund der Same-Origin-Policy, die ich vielleicht auch kurz erklären muss, aber die meisten kennen

00:37:17.940 --> 00:37:25.160
 es vielleicht, wenn ich ein, wenn ich ein Fetch mache oder wenn ich, ähm, oder wenn ich auf den

00:37:25.160 --> 00:37:29.800
 Inhalt eines iFrames zugreifen will, dann kann ich das eigentlich immer nur dann machen, wenn

00:37:29.800 --> 00:37:37.640
 die Webseite das gleiche Origin hat. Das heißt, ähm, wenn ich in iFrame lade, dann kann ich ja über das

00:37:37.640 --> 00:37:42.880
 iFrame-Element Content-Window, Content-Document auf das Dokument zugreifen und das geht eben nur, wenn die

00:37:42.880 --> 00:37:51.360
 beiden URLs Same-Origin sind. Und Same-Origin heißt, dass, ähm, das, ähm, das, äh, URL-Scheme, äh, und der

00:37:51.360 --> 00:37:58.580
 Hostname und der Port übereinstimmen. Das heißt, HTPSExample.com kann HTPSExample.com und dann irgendeinen

00:37:58.580 --> 00:38:03.660
 anderen Pfad als iFrame-Dingsen und dann können die sich gegenseitig über DEM-APIs verändern und

00:38:03.660 --> 00:38:08.060
 modifizieren. Das geht halt natürlich nicht, wenn die eine Webseite A ist und die andere Webseite B.

00:38:08.060 --> 00:38:14.480
 Genau. Und aufgrund dieser Same-Origin-Policy heißt halt auch, wenn du einmal JavaScript ausführst als

00:38:14.480 --> 00:38:20.760
 Angreifer auf einer bestimmten Webseite, dann kann man das benutzen, um sich mehr oder weniger

00:38:20.760 --> 00:38:26.540
 persistent als Angreifer für den jeweiligen Benutzer, ne, es ist ja immer nur auf der Nutzerseite im

00:38:26.540 --> 00:38:32.880
 Browser, ähm, sich über die ganze Webseite quasi ausbreiten über verschiedene Methoden. Ähm, und das

00:38:32.880 --> 00:38:42.400
 macht es halt relativ haarig. Und, ja, wie ich bereits gesagt habe, es ist, ähm, es ist eine der am häufigsten

00:38:42.400 --> 00:38:47.420
 vorkommenden Schwachstellen. Und wenn man halt einmal Scripting injiziert hat, dann kann man alles tun, was man

00:38:47.420 --> 00:38:56.400
 halt so tun kann. Und, ähm, Cross-Site-Scripting ist, ähm, ich hab mal, äh, ich hab mal in der Diskussion gesagt,

00:38:56.400 --> 00:39:01.400
 das ist einfach, einfach irre peinlich, wenn man bedenkt, dass das Web jetzt irgendwie ungefähr 25 Jahre alt ist

00:39:01.400 --> 00:39:06.100
 und HTML und JavaScript gibt's jetzt schon länger. Und wir haben es halt immer noch nicht gelöst. Und das ist halt,

00:39:06.100 --> 00:39:16.180
 einfach mega ärgerlich. So, und, ähm, und mit, äh, mit relativ neuen Trends, sag ich mal, für Single-Page-Application,

00:39:16.180 --> 00:39:21.620
 wobei es eigentlich ja schon mit Web, Keyword Web 2.0 und Ajax vielleicht angefangen hat, aber auch mit

00:39:21.620 --> 00:39:27.020
 Electron-Apps und so weiter, passiert halt immer mehr Logik und immer mehr Teil der Webseite funktionieren

00:39:27.020 --> 00:39:35.320
 halt im Browser und sind halt in JavaScript und im Frontend implementiert. Und halt nicht einfach nur, ähm, ähm, äh, Dokumente, die angezeigt werden

00:39:35.320 --> 00:39:40.140
 und das wirklich heavy passiert dem Backend. Nee. Es passiert halt immer mehr im Frontend und je mehr Code man hat,

00:39:40.140 --> 00:39:45.600
 umso wahrscheinlicher ist es, dass man mal einen Fehler macht. Und von daher ist, ähm, ist Cross-Site-Scripting

00:39:45.600 --> 00:39:49.480
 halt auch ein bisschen ein größeres Problem geworden. Nicht nur, weil, weil es häufig vorkommt,

00:39:49.480 --> 00:39:54.620
 sondern weil der Impact ein anderer ist, ne? Weil, weil es wahrscheinlicher ist, dass es vorkommt.

00:39:54.620 --> 00:40:00.620
 Und wenn du in der Electron-App, ähm, Cross-Site-Scripting hast, witzigerweise, hast du Zugriff auf ganz, ganz andere

00:40:00.620 --> 00:40:05.400
 APIs, weil Electron ja eine native Anwendung ist im Betriebssystem und du kannst tatsächlich damit,

00:40:05.400 --> 00:40:09.840
 kannst tatsächlich mehr oder weniger in den Computer damit hops nehmen und nicht einfach nur so, äh,

00:40:09.840 --> 00:40:14.780
 da werden jetzt die Passwortformulare oder so geklaut. Also das ist richtig, ist richtig hässlich.

00:40:14.780 --> 00:40:18.620
 Cross-Site-Scripting, das hätten wir eigentlich gerne, hätten wir eigentlich gerne gelöst.

00:40:18.760 --> 00:40:26.600
 Also das ist so ein Teil der Motivation. Ähm, und ein anderer Teil der Motivation ist, ähm,

00:40:26.600 --> 00:40:34.700
 einfach, dass ich am Thema Cross-Site-Scripting und Web-Sicherheit sehr, sehr lange arbeite.

00:40:34.700 --> 00:40:40.760
 Also ich habe schon zu Studienzeiten habe ich mich sehr mit Web-Security beschäftigt und fand es immer irgendwie spannender,

00:40:40.760 --> 00:40:44.620
 mir den Browser-Teil anzugucken. Also JavaScript und Frontend und was kann man da machen,

00:40:44.620 --> 00:40:48.980
 und was gibt es für neue APIs und was kann man damit für Schindluder treiben und was passiert,

00:40:48.980 --> 00:40:52.080
 wenn man da hier irgendwie was eingibt, was eigentlich nicht sein sollte und so weiter.

00:40:52.080 --> 00:40:54.460
 Und, ähm,

00:40:54.460 --> 00:41:00.180
 naja, das hat mich dann irgendwann halt am Anfang meiner Karriere zu einem Praktikum und dann zu einer Vollzeitstelle bei Mozilla geführt

00:41:00.180 --> 00:41:03.660
 und dann habe ich auch noch viel Web-Sicherheit gemacht und dann halt irgendwann Firefox OS

00:41:03.660 --> 00:41:10.260
 und jetzt schlussendlich, ähm, arbeite ich an, an GECO, also der Rendering-Engine von Firefox,

00:41:10.260 --> 00:41:11.740
 dem Browser selber.

00:41:11.740 --> 00:41:18.400
 Und ich habe halt immer gedacht, so, pfff, das muss doch mal, irgendwie muss man sich überlegen, wie man das löst.

00:41:18.400 --> 00:41:23.740
 Und es gibt ja auch super viele Ansätze und es gibt ja auch viele, die es mehr oder weniger erfolgreich gelöst haben.

00:41:23.740 --> 00:41:29.780
 Es ist ja nicht so, als wäre das ein, ein, ich sag mal, von akademischer, wissenschaftlicher Perspektive ein ungelöstes Problem.

00:41:29.900 --> 00:41:31.000
 Das ist es ja gar nicht, ne?

00:41:31.000 --> 00:41:35.060
 Also, wenn du wirklich nur Namen annehmen möchtest, zum Beispiel in deiner Webseite,

00:41:35.060 --> 00:41:38.580
 dann erlaubst du halt auch nur typische Zeichen für Namen.

00:41:38.580 --> 00:41:43.320
 Und das ist vielleicht nicht das kleiner oder größer Zeichen, was man für HTML braucht.

00:41:43.320 --> 00:41:50.560
 Ähm, und, ähm, dann gibt es natürlich Beispiele für bestimmte Frameworks,

00:41:50.560 --> 00:41:55.880
 die es einfach ganz, ganz wunderbar gelöst haben, indem sie dir komplett die Arbeit abgenommen haben,

00:41:55.880 --> 00:41:58.380
 wie du mit dem DOM und mit der Webseite sprichst.

00:41:58.580 --> 00:42:05.620
 Also, also Stichwort React, du machst ja in React, machst ja niemals irgendwas mit GetElementById oder in der HTML gleich oder so,

00:42:05.620 --> 00:42:13.200
 sondern das ist ja alles, alles in deinen React Components, die ganze Logik und wie dann nachher der DOM manipuliert wird

00:42:13.200 --> 00:42:16.180
 oder die Seite umgeschrieben wird, das macht ja komplett React.

00:42:16.180 --> 00:42:22.660
 Und dann weiß es halt, was ist Inhalt, was sind Daten und was ist Markup und was ist ein Template,

00:42:22.660 --> 00:42:26.180
 das der Entwickler geschrieben hat und kann es halt sehr, sehr schön auseinanderhalten.

00:42:26.340 --> 00:42:31.920
 Heißt aber auch für mich als Entwickler, ich muss mich darauf verlassen können, dass die Library das auch entsprechend richtig macht.

00:42:31.920 --> 00:42:40.060
 Und wenn es halt doch mal eine Lücke gibt und durch die Verbreitung von React und anderen Libraries ist die dann halt im Endeffekt in Millionen von Seiten drin.

00:42:40.060 --> 00:42:45.060
 Und wenn die dann nicht rechtzeitig aktualisiert werden, dann habe ich da eventuell ein großes Problem.

00:42:45.720 --> 00:42:50.380
 Völlig richtig, das hast du natürlich bei React wie bei jeder Library auch, genau.

00:42:50.380 --> 00:42:59.120
 Und genau, also wenn du ein Framework hast, was dir die komplette DOM-Interaktion abnimmt, dann ist es natürlich mega gut.

00:42:59.120 --> 00:43:01.700
 Dann ist es relativ einfach zu lösen.

00:43:01.700 --> 00:43:07.840
 Und dann gibt es natürlich viele punktuelle Lösungen, wo man sagt, ich mache hier mal irgendwie ein Escaping

00:43:07.840 --> 00:43:12.580
 oder ich ersetze Zeichen durch Entities und dann ist es vielleicht nicht scharf gestellt.

00:43:15.300 --> 00:43:21.760
 Und dann gibt es von einem guten Freund von mir, von Mario Heiderich, natürlich auch die Library DOM-Purify,

00:43:21.760 --> 00:43:29.520
 die das Ganze in JavaScript implementiert, dass ein String angenommen wird, zu HTML geparsed wird.

00:43:30.040 --> 00:43:36.200
 Dann wird dieser kleine Document-Tree quasi abgelaufen und dann werden Elemente, die nicht erlaubt sind, rausgeworfen.

00:43:36.200 --> 00:43:43.720
 Also du übergibst ein String, zum Beispiel Paragraph-Element, bla bla bla, Paragraph-Element schließt

00:43:43.720 --> 00:43:48.580
 und dann wird das in HTML geparsed und dann ist HTML ja normalerweise ein Baum und dann wird er halt abgelaufen.

00:43:48.580 --> 00:43:52.540
 Und dann gibt es eine Liste von guten und eine Liste von bösen HTML-Elementen.

00:43:52.540 --> 00:43:56.780
 Und dann kannst du halt einfach sortieren, bevor du es in dein Dokument schiebst.

00:43:57.780 --> 00:44:05.200
 Und das sind so all die Dinge, die so in dem Kontext existieren

00:44:05.200 --> 00:44:12.340
 und es gibt auch relativ viel, was gut funktioniert, serverseitig mit Template-Libraries verschiedenster Art.

00:44:12.340 --> 00:44:14.920
 Manche machen es gar nicht, manche machen es richtig gut.

00:44:14.920 --> 00:44:22.820
 Ein gutes Beispiel, was ich noch kenne, ist zum Beispiel das Templating in Django

00:44:22.820 --> 00:44:25.400
 und ich habe länger kein Django mehr gemacht.

00:44:25.560 --> 00:44:28.880
 Ich glaube, es ist immer noch Ginger 2, vielleicht liege ich falsch.

00:44:28.880 --> 00:44:33.120
 Aber Ginger 2 macht es gut und ich weiß, es gibt noch ein anderes.

00:44:33.120 --> 00:44:37.920
 Und ich glaube, dass Ginger 2 vielleicht nicht gerade der Standard in Django ist.

00:44:37.920 --> 00:44:41.100
 Jedenfalls wird dann einfach escaped.

00:44:41.100 --> 00:44:42.080
 Ich weiß es doch nicht.

00:44:42.080 --> 00:44:47.400
 Wir arbeiten mit Django, aber so tief bin ich da nicht drin.

00:44:47.400 --> 00:44:52.360
 Mein Punkt ist jedenfalls, es gibt auch relativ viele gute Templating-Libraries, die das im Backend machen.

00:44:53.120 --> 00:45:04.820
 Was sich aber herausgestellt hat, und da hat tatsächlich auch mein Freund Mario Heidrich relativ gute Arbeit gemacht auf der akademischen Seite im Rahmen seiner Doktorarbeit,

00:45:04.820 --> 00:45:07.120
 die jetzt auch schon einige Jahre her ist,

00:45:09.240 --> 00:45:17.000
 wo er Stück für Stück über verschiedene Angriffe und verschiedene Methoden entwickelt und herausgearbeitet hat,

00:45:17.000 --> 00:45:25.820
 dass es auf wirklich grundlegender theoretischer Basis kaum bis gar nicht möglich ist,

00:45:25.820 --> 00:45:30.260
 dieses Escaping und Encoding garantiert sicher im Backend zu tun.

00:45:31.120 --> 00:45:36.320
 Weil du nämlich immer das Problem hast, dass du mit einem potenziell anderen Browser sprichst, als du denkst.

00:45:36.320 --> 00:45:40.300
 Und jeder Browser ja immer so ein kleines bisschen unterschiedlich ist.

00:45:40.300 --> 00:45:47.100
 Und sobald der Server halt denkt, ich parse das HTML mal so und baue das mal um und das wird schon passen,

00:45:47.100 --> 00:45:50.480
 dann macht er halt eine Annahme darüber, wie der Browser das tut.

00:45:50.480 --> 00:45:52.160
 Und das kann halt falsch sein.

00:45:52.160 --> 00:45:54.060
 Ja, das ist ja so ganz beliebt.

00:45:54.060 --> 00:46:00.960
 Und sobald das falsch ist, baust du halt, was die Hacker, da gibt es auch ein schönes Paper zu,

00:46:01.040 --> 00:46:05.000
 was man mal lesen kann, wenn schlechtes Wetter ist, kommt ja jetzt der Herbst,

00:46:05.000 --> 00:46:10.660
 baut man eine sogenannte Weird Machine und die lässt sich im weitesten Sinne auch irgendwie programmieren oder entwickeln.

00:46:10.660 --> 00:46:14.480
 Und dann schreibst du halt ein mega abgefucktes Markup, was aber genau so gebaut ist,

00:46:14.480 --> 00:46:19.200
 dass es der Server so versteht und der Browser so versteht und dann macht es halt doch wieder Knall.

00:46:19.200 --> 00:46:23.740
 Als der beliebte Angriffsvektor so mal einen uralt Browser nehmen,

00:46:23.740 --> 00:46:28.300
 der bestimmte Sicherheitsrichtlinien nicht hat und dann mal gucken, was so zurückkommt.

00:46:30.960 --> 00:46:33.160
 Da gibt es einige interessante Sachen in der Richtung.

00:46:33.160 --> 00:46:35.040
 Ja, voll.

00:46:35.040 --> 00:46:40.840
 Und was ich dann für mich irgendwie, ich weiß nicht, entschieden oder begriffen habe, ist,

00:46:40.840 --> 00:46:44.920
 ich habe gedacht, es ist cool, dass es viele richtig machen,

00:46:44.920 --> 00:46:46.780
 aber wenn du es richtig machen willst,

00:46:46.780 --> 00:46:49.660
 dann musst du halt tatsächlich doch vielleicht das ein oder andere Paper lesen

00:46:49.660 --> 00:46:53.340
 und ein bisschen vergleichen und Libraries und das kannst du halt irgendwie keinem zumuten.

00:46:53.580 --> 00:46:57.900
 Und dann habe ich gedacht, ich meine, das Wichtigste, was so ein Sanitizer macht,

00:46:57.900 --> 00:47:01.400
 ist ja HTML-Parsing und ein bisschen durchsortieren.

00:47:01.400 --> 00:47:06.420
 Das ist an sich nicht schwierig, aber andererseits, ich muss mal kurz meine Katze aus dem Zimmer jagen,

00:47:06.420 --> 00:47:10.420
 die macht ja gerade wahnsinnig, die hat irgendwas zum Spielen entdeckt.

00:47:11.540 --> 00:47:14.240
 Ihr habt bestimmt witzige Übergangsmusik, ich bin gleich wieder da.

00:47:14.240 --> 00:47:16.700
 Jetzt wird es aufgehört.

00:47:16.700 --> 00:47:17.460
 Jetzt wird es wieder Witz rausgraben.

00:47:17.460 --> 00:47:19.260
 Witzig.

00:47:19.260 --> 00:47:22.020
 Mir war das relativ wichtig, diesen einen Punkt zu machen.

00:47:22.020 --> 00:47:23.880
 Jetzt bin ich raus.

00:47:23.880 --> 00:47:24.280
 Nee, warte.

00:47:24.880 --> 00:47:31.340
 Also meine Erkenntnis oder meine Schlussfolgerung aus dieser ganzen Komplexität ist eigentlich,

00:47:31.340 --> 00:47:34.620
 HTML-Parsing macht der Browser schon die ganze Zeit.

00:47:34.620 --> 00:47:37.360
 Und das kann der Browser relativ gut.

00:47:37.360 --> 00:47:39.400
 Das ist so das Hauptding, warum wir den bauen.

00:47:39.400 --> 00:47:44.900
 Und ich glaube, das sollte einfach nicht in der Verantwortung eines Entwicklers sein.

00:47:44.900 --> 00:47:46.480
 Also wenn du eine Web-Anwendung baust,

00:47:46.480 --> 00:47:50.580
 dann sollte Cross-Sat-Scripting nicht komplett allein dein Problem sein.

00:47:50.580 --> 00:47:52.960
 Dann sollte es nicht heißen, ja, da gibt es ein Problem, muss er halt lösen.

00:47:52.960 --> 00:47:54.560
 Das ist nicht unser Bier.

00:47:55.460 --> 00:47:56.340
 Das passt mir halt nicht.

00:47:56.340 --> 00:48:04.180
 Und ich habe für mich das hohe Ziel und ich glaube, dass das auf jeden Fall schwierig wird zu erreichen.

00:48:04.180 --> 00:48:07.480
 Aber ich glaube, also ich weiß, das ist ein steiniger Weg,

00:48:07.480 --> 00:48:12.500
 aber ich glaube, es ist möglich, so weit zu kommen, zu sagen, wir geben die Verantwortung ab.

00:48:12.500 --> 00:48:16.540
 Also die Entwickler sagen, ich muss mich darum nicht kümmern.

00:48:16.540 --> 00:48:19.460
 Es gibt eine Schnittstelle im Browser, die kann ich benutzen.

00:48:19.460 --> 00:48:21.000
 Und der macht das für mich.

00:48:21.000 --> 00:48:23.680
 Und der macht das nicht nur für mich und meine Webseite,

00:48:23.780 --> 00:48:25.480
 sondern der macht das auch für mich und meine Webseite

00:48:25.480 --> 00:48:27.820
 und exakt den Benutzer, den ich gerade habe.

00:48:27.820 --> 00:48:33.040
 Weil du halt nicht diesen Fehler oder diesen Mismatch haben kannst

00:48:33.040 --> 00:48:36.420
 zwischen zwei unterschiedlichen HTML-Parsern im Backend oder in der Library

00:48:36.420 --> 00:48:39.740
 versus das, was der Browser tatsächlich versteht oder verstehen möchte,

00:48:39.740 --> 00:48:41.360
 sondern du kapselst das einfach.

00:48:41.360 --> 00:48:46.460
 Du sagst halt, das ist die Aufgabe des Browsers, nur der kann das, der kann das gut.

00:48:46.460 --> 00:48:51.080
 Und wenn der das nicht gut macht, dann ist es halt ein Problem des Browsers

00:48:51.080 --> 00:48:55.220
 und nicht ein Problem von jeder Webseite da draußen, von denen es halt einfach viel zu viele gibt.

00:48:55.220 --> 00:48:59.540
 Als dass man sagen könnte, ja, da müssen wir halt alle beheben, das geht ja nicht.

00:48:59.540 --> 00:49:06.040
 Und im Worst Case, ich weiß nicht, ob wir das für einen Sanitizer-API-Bypass machen würden,

00:49:06.040 --> 00:49:10.460
 aber im Worst Case kann halt so ein Browser-Update innerhalb von 24 Stunden verfügbar sein.

00:49:10.640 --> 00:49:14.020
 Und dann ist es halt nicht ein Problem, was du in deiner Webseite lösen musst.

00:49:14.020 --> 00:49:17.000
 Und das ist so eine Welt, wo ich unheimlich gerne hinwürde.

00:49:17.000 --> 00:49:18.720
 Cool.

00:49:18.720 --> 00:49:20.120
 Und das ist so die Motivation.

00:49:20.120 --> 00:49:22.080
 Ja, ja, ja.

00:49:22.080 --> 00:49:25.520
 Wie gesagt, es ist ein steiniger Weg und ich gehe noch.

00:49:25.520 --> 00:49:30.620
 Aber ich denke, es ist einfach an der Zeit zu sagen,

00:49:30.620 --> 00:49:32.800
 das kann nicht jede Webseite.

00:49:32.800 --> 00:49:36.480
 Und dann good luck, so, versuch halt mal.

00:49:36.480 --> 00:49:38.040
 Das passt mir irgendwie nicht.

00:49:39.160 --> 00:49:41.040
 Genau, das ist so ein bisschen die Motivation.

00:49:41.040 --> 00:49:45.240
 Jetzt habe ich ganz schön tief ausgeholt, aber ich hoffe, das wird einigermaßen klar.

00:49:45.240 --> 00:49:47.960
 Ja, ich kann noch kurz nachtragen.

00:49:47.960 --> 00:49:50.780
 Die Folge, in der ich mir das gewünscht habe, dass es das gibt,

00:49:50.780 --> 00:49:53.940
 das war die Folge Nummer 17, Tagged Template Literals.

00:49:53.940 --> 00:49:54.680
 Darum ging es.

00:49:54.680 --> 00:49:58.700
 Und der Zusammenhang war, genau, der Zusammenhang war,

00:49:58.700 --> 00:50:01.620
 naja, diese Template Literals, die sind ja eigentlich eine coole Sache in JavaScript,

00:50:01.620 --> 00:50:06.100
 aber wenn man damit HTML baut, was eigentlich ziemlich bequem ist damit,

00:50:06.100 --> 00:50:09.220
 also so, dass es wirklich zum Templating, zum HTML-Templating nimmt,

00:50:09.220 --> 00:50:12.080
 dann hast du das Security-Problem ist dadurch nicht abgenommen.

00:50:12.080 --> 00:50:13.460
 Das ist immer noch genauso da wie vorher.

00:50:13.460 --> 00:50:15.700
 Wenn du die wieder in die Seite reinpackst, hast du genauso ein Problem.

00:50:15.700 --> 00:50:17.960
 Darüber haben wir da gesprochen, habe ich gesagt, hey, das wäre doch super.

00:50:17.960 --> 00:50:21.620
 Und es gibt DOM Purify und will man aber nicht immer sich eine JavaScript-Library

00:50:21.620 --> 00:50:22.340
 dafür noch reinziehen?

00:50:22.340 --> 00:50:25.120
 Ja, klar, sollte man machen, will man aber vielleicht nicht immer.

00:50:25.820 --> 00:50:28.660
 Und dann wurden wir in den Kommentaren darauf hingewiesen,

00:50:28.660 --> 00:50:29.960
 dass es das doch irgendwie gibt.

00:50:29.960 --> 00:50:32.560
 Und da wurde auch schon der Draft damals verlinkt.

00:50:32.560 --> 00:50:36.120
 Das war am 16.11.2020 kam der Kommentar.

00:50:36.120 --> 00:50:36.900
 Genau.

00:50:36.900 --> 00:50:38.640
 Ja, genau.

00:50:38.640 --> 00:50:40.600
 Mit Template Strings.

00:50:40.600 --> 00:50:42.100
 Ja, geht so.

00:50:42.100 --> 00:50:43.960
 Ich komme wieder.

00:50:43.960 --> 00:50:46.320
 Ich kann auch einen schlechten Dead-Joke erzählen,

00:50:46.320 --> 00:50:47.800
 wenn du noch dafür ein bisschen Zeit brauchst.

00:50:47.800 --> 00:50:49.480
 Mach mal.

00:50:51.260 --> 00:51:01.460
 Oh, warte mal, jetzt habe ich meinen Einsatz verpasst.

00:51:01.460 --> 00:51:03.940
 Warte, ich habe noch einen.

00:51:03.940 --> 00:51:04.600
 Ich habe noch einen.

00:51:04.600 --> 00:51:06.820
 What do you call a pile of cats?

00:51:06.820 --> 00:51:09.880
 A mjaunten.

00:51:09.880 --> 00:51:12.100
 Wow.

00:51:12.100 --> 00:51:15.200
 Das ist ein gut vorbereitet hier.

00:51:15.200 --> 00:51:16.240
 Wir können alles überbrücken.

00:51:16.240 --> 00:51:19.240
 Herrlich.

00:51:19.240 --> 00:51:20.340
 Okay, gut.

00:51:21.060 --> 00:51:22.540
 So, ich glaube, die Katze benimmt sich jetzt.

00:51:22.540 --> 00:51:23.600
 Okay.

00:51:23.600 --> 00:51:25.360
 Ist eigentlich ein Kater übrigens.

00:51:25.360 --> 00:51:25.960
 Ah, okay.

00:51:25.960 --> 00:51:26.820
 Ah, okay.

00:51:26.820 --> 00:51:29.440
 Und wenn er gleich aktiv am Podcast teilnimmt,

00:51:29.440 --> 00:51:30.800
 stelle ich ihn vielleicht auch noch vor.

00:51:30.800 --> 00:51:32.660
 Aber wir versuchen es mal ohne.

00:51:32.660 --> 00:51:36.080
 Aber wir können auch mal eine Folge mit ihm machen.

00:51:36.080 --> 00:51:36.860
 Kannst du ihm sagen?

00:51:36.860 --> 00:51:38.280
 Dann gibt er jetzt Ruhe.

00:51:38.280 --> 00:51:40.260
 In der nächsten Folge sei dann offiziell eingeladen.

00:51:40.260 --> 00:51:42.980
 Wie sieht eigentlich so ein Headset für eine Katze aus?

00:51:42.980 --> 00:51:45.800
 Das muss man irgendwie noch erfinden, glaube ich.

00:51:45.800 --> 00:51:47.160
 Das stehe ich mir relativ witzig vor.

00:51:47.160 --> 00:51:50.780
 Jetzt wird es ihm zu blöd.

00:51:50.860 --> 00:51:54.620
 Ja, geil.

00:51:54.620 --> 00:51:59.300
 Ja, das war auf jeden Fall so.

00:51:59.300 --> 00:52:03.320
 Wie seid ihr drauf gekommen und was ist so der Hintergrund zur API?

00:52:03.320 --> 00:52:05.120
 Genau.

00:52:05.300 --> 00:52:06.720
 Den nächsten Punkt musst du ja mal uns erklären.

00:52:06.720 --> 00:52:08.920
 Das verstehe ich gar nicht, was du meinst.

00:52:08.920 --> 00:52:10.820
 Ja, das erkläre ich kurz.

00:52:10.820 --> 00:52:14.660
 Das kam nämlich aus derselben Richtung wie mein Wunsch damals.

00:52:15.200 --> 00:52:20.500
 Weil ich habe mal eine Stelle gebaut im Code, wo ich wusste, da kommt User-Generated-Content rein.

00:52:20.500 --> 00:52:23.040
 Also es ist immer Cross-Side-Scripting anfällig.

00:52:24.300 --> 00:52:27.720
 Und wollte da ganz, ganz, ganz sicher gehen, dass da kein Quatsch passiert.

00:52:27.720 --> 00:52:33.780
 Und dann habe ich unseren Security-Experten gefragt und er gesagt, ja, entweder nimmst du halt DOM-Purify oder eben DOM-Methoden.

00:52:34.160 --> 00:52:42.020
 Also du baust dein HTML nicht in einem Template irgendwie, in einem String, den du da am Ende rausgibst, sondern du baust dein HTML, lässt es den Browser quasi machen mit DOM-Methoden.

00:52:42.100 --> 00:52:51.200
 Das wird total eklig und hässlich, weil du machst jedes Attribut mit, äh, äh, warte mal, Add-Attribute, ich weiß gar nicht mehr genau.

00:52:51.200 --> 00:52:52.980
 Set-Attribute, ja, ja.

00:52:52.980 --> 00:52:54.360
 Ja, Set-Attribute, genau.

00:52:54.360 --> 00:52:58.200
 Und jedes HTML-Tag generierst du einzeln über DOM-Methoden.

00:52:58.200 --> 00:53:02.260
 Es wird ein fürchterlicher Spaghetti-Code, aber man kann so sich HTML zusammenbasteln.

00:53:02.260 --> 00:53:03.400
 Das habe ich damals gemacht.

00:53:03.400 --> 00:53:08.820
 Ja, aber das war einfach, wenn man das sich jetzt nochmal anguckt, es ist furchtbar, was dabei rausgekommen ist.

00:53:09.300 --> 00:53:16.940
 Und, äh, es wäre so viel einfacher gewesen, du baust dein HTML-Template einfach und, äh, schmeißt es gegen irgendeine API und dann, äh, raus damit und gut ist.

00:53:16.940 --> 00:53:19.040
 Das, das ist das, was ich noch meinte, ja.

00:53:19.040 --> 00:53:20.440
 Das ist super witzig.

00:53:20.440 --> 00:53:28.060
 Ich habe tatsächlich genau die gleiche Diskussion auch mal geführt und der Entwickler hat halt nicht gesagt, ja gut, dann mache ich es halt, sondern der hat gesagt, du bist ja bekloppt, das mache ich nicht.

00:53:28.060 --> 00:53:34.280
 Und dann habe ich tatsächlich, habe ich tatsächlich ein Tool geschrieben, ich müsste mal gucken, das gibt es bestimmt noch irgendwo.

00:53:34.280 --> 00:53:36.740
 Ich habe das genannt HTML2DOM.

00:53:38.680 --> 00:53:50.220
 Und dann gibst du einen HTML-String ein und der generiert der JavaScript-Code, der halt macht the Create-Element, äh, Reset-Attribute und dann, ähm, Append-Child und so weiter.

00:53:50.220 --> 00:53:55.440
 Aber das ist halt auch, muss man dazu sagen, ich sage mal 2012, war 2013er JavaScript.

00:53:55.440 --> 00:53:59.020
 Das heißt, es sind halt auch noch echt ätzende Methoden, um all diese Dinge zu machen.

00:53:59.160 --> 00:54:03.700
 Fantastisch, natürlich, es liegt total nahe, dass man das automatisieren kann, klar.

00:54:03.700 --> 00:54:10.260
 Hat mir auch mega viel Spaß gemacht zu schreiben, aber ich wurde nicht ernst genommen, ich wurde nicht ausgelacht.

00:54:11.000 --> 00:54:14.600
 Und der Code ist halt auch nicht schön, der generiert wird, also sorry.

00:54:14.600 --> 00:54:20.900
 Du kannst es vielleicht sagen, als Build-Step vielleicht, aber du kannst nicht den Leuten sagen, hier, ähm, mach das mal.

00:54:22.240 --> 00:54:26.800
 Man könnte auch, äh, bestimmte Files sagen, hey, da, als Build-Step, bitte mach, ja, doch.

00:54:26.800 --> 00:54:32.740
 Das war aber, glaube ich, auch vor der Ära, dass man, dass man irgendwelche Build- oder, oder Webpack-Tools hatte, von daher.

00:54:34.020 --> 00:54:41.160
 Aber wie würdest du das bewerten? Würdest du dann auch sagen, also DOM-Methoden verwenden, jetzt mal egal, wie hässlich das ist, ähm, das ist schon eher safe, oder?

00:54:41.160 --> 00:54:53.200
 Es hängt mega, mega davon ab. Also, ich möchte jetzt keine Allheilmittel versprechen, aber, ähm, erstens bin ich ein großer Fan von DOM-Purify, muss ich sagen.

00:54:53.200 --> 00:55:00.140
 Also, ähm, kann man ruhig mal verwenden. Die haben auch einfach einen guten Track-Record, was, was Security-Issues angeht.

00:55:00.140 --> 00:55:03.980
 Also, es werden halt mal welche drin gefunden, aber dann gibt's halt sofort ein Update.

00:55:03.980 --> 00:55:07.740
 Und die haben eine Mailing-Liste, wo du halt lesen kannst, es gibt ein Update, und dann machst du das halt.

00:55:07.740 --> 00:55:14.220
 Ähm, was, glaube ich, einfach im Vergleich mit jeder anderen Library, finde ich, schon einen Tacken, Tacken besser ist.

00:55:14.220 --> 00:55:17.660
 Und die sind halt, die haben halt einen guten Draht zur Security-Community.

00:55:17.660 --> 00:55:21.220
 Also, wenn jemand einen geilen Bypass findet, dann kriegen die das halt auch mit.

00:55:21.220 --> 00:55:28.940
 Und, ähm, klar, du kannst halt auch DOM-Methoden schreiben, das ist auch definitiv sicher und richtig,

00:55:29.140 --> 00:55:34.800
 aber je nachdem, wie groß halt dein, ähm, dein Markup wird, dein HTML-Template oder was,

00:55:34.800 --> 00:55:36.860
 wird's auch super schnell hässlich.

00:55:36.860 --> 00:55:39.920
 Und das will ich halt auch nicht, nicht arg befürworten.

00:55:39.920 --> 00:55:40.880
 Ja.

00:55:40.880 --> 00:55:44.660
 Was man ja irgendwie machen kann, was ich mir noch nie so hundertprozentig angeguckt hab,

00:55:44.660 --> 00:55:48.140
 ist, es gibt ja das Template-Element, wo du tatsächlich was reinschreiben kannst.

00:55:48.140 --> 00:55:52.980
 Und dann gibt es noch das Slot-Element, wo du tatsächlich sagen kannst,

00:55:53.080 --> 00:55:54.800
 hier soll jetzt was reingelegt werden.

00:55:54.800 --> 00:56:00.620
 Damit kann man relativ nett etwas Template-Ähnliches bauen,

00:56:00.620 --> 00:56:03.180
 aber es fehlt von der Ergonomie extrem viel.

00:56:03.180 --> 00:56:10.480
 Aber auch das nimmt dir natürlich nicht dein, ähm, dein komplettes Escaping ab.

00:56:10.480 --> 00:56:13.580
 Wenn du halt doch irgendwie ein bisschen HTML erlauben willst, ist es immer schwierig.

00:56:13.740 --> 00:56:16.220
 Also User-Generated HTML erlauben willst.

00:56:16.220 --> 00:56:20.500
 Ansonsten sag ich halt immer, vielleicht machst du einfach statt in HTML Text-Content.

00:56:21.700 --> 00:56:23.300
 Aber das geht natürlich nicht immer.

00:56:23.300 --> 00:56:24.240
 Ja.

00:56:24.240 --> 00:56:31.120
 Ja, in diesem Fall ging das nicht, weil da ging es darum, Suchvorschläge zu highlighten,

00:56:31.120 --> 00:56:32.360
 den eingegebenen Begriff.

00:56:32.360 --> 00:56:32.740
 Ja.

00:56:32.740 --> 00:56:35.380
 Und da hast du dann sofort HTML gleich drin.

00:56:35.380 --> 00:56:37.940
 Und du weißt halt echt nicht, was da jemand reinschreibt.

00:56:37.940 --> 00:56:38.960
 Also es ist, äh, ja.

00:56:38.960 --> 00:56:40.120
 Okay.

00:56:40.120 --> 00:56:45.540
 Gut, dann kommen wir doch vielleicht mal, äh, zur API selbst.

00:56:45.540 --> 00:56:51.220
 Wir haben jetzt schon viel drüber geredet, ähm, um das, irgendwas drumherum.

00:56:51.320 --> 00:56:53.500
 Irgendwie kam es dazu und was für ein Problem soll gelöst werden.

00:56:53.500 --> 00:56:55.420
 Aber wie soll das Ding denn eigentlich funktionieren?

00:56:55.420 --> 00:57:01.840
 Ähm, was wir uns erhoffen, was ein bisschen, als das erste Mal mir jemand gesagt hat, wie

00:57:01.840 --> 00:57:05.000
 wäre es denn damit, dachte ich so, ah, das ist ein bisschen, ich erzähle es mal.

00:57:05.000 --> 00:57:10.580
 Also die Idee ist tatsächlich so, dass du dir einen Sanitizer baust, ein Sanitizer-Objekt,

00:57:10.580 --> 00:57:15.380
 über einen Constructor, einen New Sanitizer und dann wirfst du da ein paar Options rein.

00:57:15.380 --> 00:57:17.840
 All diese Options sind optional.

00:57:18.180 --> 00:57:23.220
 Es gibt ein Default und für den Default wollen wir versprechen, dass der XSS safe ist.

00:57:23.220 --> 00:57:27.460
 Unter bestimmten Bedingungen, auf die wir später nochmal eingehen können.

00:57:28.680 --> 00:57:34.220
 Und Optionen, die du halt reingeben kannst, sind Elemente, die ich erlauben möchte, Elemente, die ich explizit nicht erlauben möchte,

00:57:34.220 --> 00:57:40.540
 äh, Attribute, Custom-Elements und wenn du Custom-Elements erlauben willst, dann musst du mir auch sagen, wie die heißen.

00:57:40.540 --> 00:57:44.480
 Äh, sollen HTML-Kommentare rausgeworfen werden, ja oder nein.

00:57:45.200 --> 00:57:54.140
 Und was wir auch gerade versuchen und das ist eigentlich sehr, sehr gerne, ähm, eine Tür, die ich auch zu, weiter zuhalten möchte, ist,

00:57:54.140 --> 00:57:59.760
 dass man den Sanitizer nie so konfigurieren kann, dass der was erlaubt, was unsicher ist.

00:58:00.240 --> 00:58:04.520
 Also, dass du tatsächlich niemals als Options reintun kannst und dann erlaub mir noch das Script-Element.

00:58:04.520 --> 00:58:14.240
 Ähm, da bin ich mir nicht sicher, ähm, wie sehr das den Leuten gefallen wird, wenn die halt sagen, ja, ich bin mir aber doch ziemlich sicher,

00:58:14.340 --> 00:58:25.000
 dass das in dem Fall an der Stelle folgendes Attribut doch in Ordnung ist, ähm, weil ich auch weiß, wie, ähm, wie verärgert ich schon mal darauf reagiert habe,

00:58:25.000 --> 00:58:30.520
 dass eine API nicht das gemacht hat, was ich dachte, dass sie machen würde, weil ich doch, weil ich doch das jetzt will.

00:58:30.520 --> 00:58:36.760
 Ähm, aber gleichzeitig denke ich, wenn wir sagen, das ist, das ist unsere Verantwortung und wir wollen das in den Browser geben

00:58:36.760 --> 00:58:42.620
 und wir wollen das Problem halt langfristig loswerden, dann möchte ich halt gerne weiterhin genau diese Tür zuhalten.

00:58:43.580 --> 00:58:50.980
 Genau, aber es gibt auch, die steht halt in der Spezifikation, äh, eine Standardliste von Elementen, die wir für sicher halten und die wir erlauben

00:58:50.980 --> 00:58:56.960
 und, ähm, das Einzige, was du also quasi mit den Optionen machen kannst, ist, du kannst die Liste kleiner machen.

00:58:56.960 --> 00:59:04.620
 Ja, also, wenn du sagst, ich möchte vielleicht kein, äh, New Lines oder keine Bilder oder was auch immer,

00:59:04.620 --> 00:59:11.880
 dann kannst du die halt rausnehmen, aber alles in allem ist das schon mehr oder weniger alles und dann hast du halt ein Sanitizer-Objekt.

00:59:12.820 --> 00:59:19.220
 Und dieses Sanitizer-Objekt ist jetzt quasi nicht viel mehr als der, der Container für deine Konfiguration,

00:59:19.220 --> 00:59:29.060
 die du für deinen bestimmten Use Case oder für deine bestimmte, ähm, für dein bestimmtes Feld, wo du gerade was rendern willst, hast.

00:59:30.660 --> 00:59:37.820
 Ähm, und den kannst du an anderer Stelle übergeben und jetzt wird's ein bisschen funky.

00:59:38.440 --> 00:59:45.720
 Also, ähm, wir erstellen tatsächlich einen neuen, eine neue Funktion auf dem, ähm, Prototypen von allen HTML-Elementen.

00:59:45.920 --> 00:59:53.600
 Also, ähm, jedes HTML-Element hat ja diverse Funktionen, wie zum Beispiel setAttribute und, und Properties wie .innerHTML.

00:59:53.600 --> 00:59:59.160
 Ähm, und wir haben uns eine neue Funktion überlegt, die einfach setHTML heißt.

01:00:00.020 --> 01:00:01.640
 Und da wirfst du dein Input rein.

01:00:01.640 --> 01:00:05.860
 Also, du hast, äh, documentbody.setHTML.

01:00:05.860 --> 01:00:08.300
 Und der erste Parameter ist der Input.

01:00:08.300 --> 01:00:12.280
 Und der zweite Parameter sind zum Beispiel der Sanitizer.

01:00:14.520 --> 01:00:16.080
 Und dann macht er das einfach alles.

01:00:16.080 --> 01:00:20.500
 Und der Witz ist halt, dass an der Stelle der Sanitizer wieder optional ist.

01:00:20.500 --> 01:00:29.720
 Das heißt, als Entwickler, im einfachsten Fall, kannst du ersetzen documentbody.innerHTML gleich Input, wobei Input vielleicht böse ist,

01:00:29.720 --> 01:00:34.520
 und ersetzt einfach diese komplette Zeile durch documentbody.setHTML.

01:00:34.520 --> 01:00:37.220
 Das ist eine Funktion, Klammer auf, Input, Klammer zu.

01:00:37.220 --> 01:00:40.680
 Und du hast dein XSS-Problem im besten Fall einfach gelöst.

01:00:40.680 --> 01:00:48.380
 Weil nämlich der Default-Sanitizer verspricht, weil der Default-Sanitizer verspricht, es gibt kein Crosshead-Scripting.

01:00:48.380 --> 01:00:52.720
 Mit einem Sternchen, aber zu dem Sternchen möchte ich in ungefähr zehn Minuten nochmal kommen.

01:00:52.720 --> 01:00:55.500
 Okay, okay, ich hab's schon notiert, wir kommen nochmal auf die Bedingungen.

01:00:55.500 --> 01:00:56.140
 Auf jeden Fall.

01:00:56.140 --> 01:01:02.240
 Und wenn du halt sagst, ähm, mein Formular möchte halt bestimmte Elemente nicht erlauben, ich möchte keine Bilder,

01:01:02.240 --> 01:01:08.700
 ich möchte wirklich nur, ich sag mal, bold, italics, underline, durchgestrichen und vielleicht, keine Ahnung, listen oder so,

01:01:09.380 --> 01:01:15.600
 äh, dann übergibst du halt noch deinen Sanitizer in der Option, äh, und dann macht zHTML genau das und mehr nicht.

01:01:17.920 --> 01:01:21.800
 Und das ist so das Grundgerüst der API.

01:01:21.800 --> 01:01:29.280
 Und ich glaube, dass wir damit sehr, sehr bis fast alle Use Cases abfrühstücken können.

01:01:30.340 --> 01:01:37.300
 Interessantigerweise hatten wir als ersten, ähm, Working Draft von unserer API was ganz anderes,

01:01:37.300 --> 01:01:43.820
 nämlich, dass das Sanitizer-Objekt eine Funktion hat, die heißt einfach Sanitize und dann wirfst du da einen String rein

01:01:43.820 --> 01:01:49.840
 und dann wird der halt für dich Sanitize und dann kriegst du den wieder zurück, was eigentlich extrem genau das ist,

01:01:49.840 --> 01:01:53.580
 was Dom Purify heißt, nur mit ausgetauschten Namen, statt Dom Purify.

01:01:53.680 --> 01:02:00.800
 Purify haben wir Sanitizer, Sanitize, ähm, wir haben aber zwei relativ coole Sachen gemerkt

01:02:00.800 --> 01:02:07.740
 und da muss ich eigentlich, nee, muss ich mich definitiv sehr bedanken bei meinem, ähm, Arbeitskollegen,

01:02:07.740 --> 01:02:14.480
 der, ähm, Mitautor des HTML-Specs ist, Anne van Kesteren, äh, der hat nämlich gesagt,

01:02:14.540 --> 01:02:19.460
 das ist ja eigentlich eine richtig geile Idee, aber was du halt machst im Sanitize unten drunter ist,

01:02:19.460 --> 01:02:26.440
 du nimmst einen String, baust daraus einen HTML-Baum, dann sortierst du diesen HTML-Baum durch,

01:02:26.440 --> 01:02:30.560
 wirfst irgendwelche Elemente raus, dann machst du aus dem Baum wieder einen String,

01:02:30.560 --> 01:02:36.820
 dann gibst du das dem Entwickler und der wirft den String wieder in den Dom

01:02:36.820 --> 01:02:40.420
 und dann wird das wieder geparst und dann baust du wieder einen Baum.

01:02:40.420 --> 01:02:41.820
 Das ist ja Blödsinn.

01:02:41.820 --> 01:02:44.060
 Dann hab ich gesagt, das stimmt.

01:02:44.060 --> 01:02:47.000
 Das ist die Kurzfassung.

01:02:47.000 --> 01:02:49.600
 Ich glaube, es hat Wochen gedauert, bis ich gesagt habe, das stimmt.

01:02:49.600 --> 01:02:53.500
 Ähm, aber das war so eine richtig spannende Erkenntnis, wie ich fand.

01:02:53.500 --> 01:02:57.560
 Also ich wollte, ich wollte gerade, ähm, erstmal spielen mit den Pausen und der Verzögerung,

01:02:57.560 --> 01:02:58.800
 sich nicht ins Wort zu fallen.

01:02:58.800 --> 01:02:59.640
 Wir kennen das mal heute.

01:02:59.640 --> 01:03:03.940
 Ähm, ich hatte nämlich, als du das gesagt hast, äh, mit dem Sanitize einfach als Funktion,

01:03:03.940 --> 01:03:06.560
 das war intuitiv auch das, wie ich es erwartet hätte ursprünglich.

01:03:06.820 --> 01:03:11.920
 Und, äh, meine Anschlussfrage wäre jetzt, gibt's aber trotzdem zusätzlich die, äh, Funktion

01:03:11.920 --> 01:03:17.040
 oder die Möglichkeit zu sagen, gib mir einfach aus dem String eine gesanitizte Version als String zurück?

01:03:17.040 --> 01:03:20.340
 Gibt's das trotzdem noch irgendwie oder ist das dann komplett ersetzt worden?

01:03:20.340 --> 01:03:22.020
 Jein. Jein.

01:03:22.020 --> 01:03:28.520
 Du kannst dir natürlich ein Dummy-Element erstellen, das zHTML aufrufen und dir dann das innerHTML rausholen.

01:03:28.520 --> 01:03:34.100
 Ähm, es gibt nämlich noch ein anderes Problem und das ist tatsächlich von der Security-Perspektive

01:03:34.100 --> 01:03:39.200
 einen Tacken schwergewichtiger, weswegen wir da tatsächlich sehr, äh, wie soll ich sagen,

01:03:39.200 --> 01:03:40.920
 äh, große Kurskorrektur.

01:03:40.920 --> 01:03:45.880
 Ich hab tatsächlich, ähm, von einem halben Jahr gedacht, so, die Sanitize-API, wir sind fast fertig.

01:03:45.880 --> 01:03:47.860
 Und dann große Kurskorrektur.

01:03:47.860 --> 01:03:53.880
 Ähm, was mir nämlich dann auch noch aufgefallen ist, auch da wieder, ähm, schön, dass man nicht

01:03:53.880 --> 01:04:01.180
 alleine dran arbeitet, auch wieder gutes Feedback von, ähm, von den Leuten, die an den HTML-Spezifikationen arbeiten.

01:04:01.180 --> 01:04:12.980
 Ähm, es gibt tatsächlich, wenn man das ganze HTML-Spec liest, was ich natürlich keinem empfehlen kann, ähm, aber, ähm, wenn man das, wenn man die, das

01:04:12.980 --> 01:04:22.780
 das Unterkapitel Parsing liest, dann gibt es zwei Algorithmen zum HTML-Parsen und einen davon müssen wir halt zwangsläufig benutzen, wenn wir es spezifizieren.

01:04:23.160 --> 01:04:31.180
 Und der erste ist, du paarest ein Element, nein, du paarest ein komplettes Dokument, ein komplettes HTML-Dokument, so wie es der Browser auch macht, wenn er eine Webseite aufruft.

01:04:31.180 --> 01:04:35.880
 Ähm, und dieser Algorithmus gibt dir zurück ein komplettes Dokument.

01:04:35.880 --> 01:04:38.380
 Das wollen wir ja in unserem Fall nicht.

01:04:38.380 --> 01:04:40.960
 Also, gucken wir uns die zweite Funktion an.

01:04:40.960 --> 01:04:43.260
 Das ist der sogenannte Fragment-Parser.

01:04:43.680 --> 01:04:53.420
 Der parsst ein HTML-Fragment, braucht aber definitiv als zweiten Parameter neben dem Input ein Kontext-Element.

01:04:53.420 --> 01:05:01.320
 Und dann parsst er, und zwar komplett unterschiedlich in Abhängigkeit des Kontext-Elementes.

01:05:01.320 --> 01:05:09.660
 Und wenn er dieses Parsing gemacht hat, dann gibt er dir halt so ein Fragment, also so ein HTML-Bäumchen mit, was halt kein komplettes Dokument ist.

01:05:10.060 --> 01:05:14.340
 So, und der Witz ist halt, dass das Security-Relevant sein kann.

01:05:14.340 --> 01:05:25.400
 Und zwar, wenn wir uns einfach nur das einfachste Beispiel angucken, was passiert mit HTML-Input, den wir schreiben, wenn er in einem Text-Area-Element ist,

01:05:25.400 --> 01:05:30.440
 versus was passiert mit Input, den wir schreiben, wenn er in einem Diff-Element ist.

01:05:30.440 --> 01:05:32.680
 Und das wissen ja die meisten.

01:05:32.680 --> 01:05:37.020
 Wenn du im Text-Area HTML schreibst, dann ist das gar kein HTML.

01:05:37.020 --> 01:05:43.320
 Dann wird das als Text interpretiert vom Browser und dann wird das als Input eines Text-Area-Elements angezeigt.

01:05:43.320 --> 01:05:46.620
 Und bei einem Diff-Element halt nicht.

01:05:46.620 --> 01:05:53.160
 Das heißt, wir müssen eigentlich wissen, im Sanitize-Use-Case, wie wir das, was wir gerade aufräumen müssen,

01:05:53.160 --> 01:05:54.960
 wie soll das gepasst werden?

01:05:54.960 --> 01:05:56.380
 Wie soll das verstanden werden?

01:05:56.380 --> 01:05:58.360
 Was ist das eigentlich, was man uns da gerade gibt?

01:06:02.440 --> 01:06:09.600
 Und ein anderes Beispiel, wo es tatsächlich auch von der Funktionalität Sinn macht, ist, wenn du ein, ähm, seid ihr noch da?

01:06:09.600 --> 01:06:11.340
 Ja, ja, wir laufen.

01:06:11.340 --> 01:06:12.340
 Okay, hört einfach gebannt.

01:06:12.340 --> 01:06:14.020
 Sehr gebannt, ja.

01:06:14.020 --> 01:06:17.100
 Hat er einmal aufgewacht.

01:06:17.100 --> 01:06:25.940
 Auch ein relativ gutes Beispiel, finde ich, von der Verständlichkeit her, ist, wenn du ein Diff-Element hast und Diff.in HTML equals

01:06:25.940 --> 01:06:34.520
 und dann, äh, Table-Row oder Table-Td-Element machst, ähm, dann funktioniert das nicht.

01:06:34.520 --> 01:06:39.660
 Dann werden die weggeworfen, weil es nämlich keine Tabellen, Zeilen außerhalb von Tabellen gibt.

01:06:39.660 --> 01:06:43.680
 Ähm, sondern dann werden die weggeworfen, es wird alles, was da drin ist, wird dann genommen.

01:06:43.680 --> 01:06:54.140
 Ähm, aber halt diese, diese Zeile hier, tr, fuba, tr schließt, die wird halt komplett anders gepasst in einem Diff als in einem Table-Element.

01:06:54.140 --> 01:06:57.720
 Im Table-Element hast du tatsächlich einen neuen Row und im Diff-Element nicht.

01:06:57.720 --> 01:07:05.440
 Das heißt, an ganz vielen Stellen funktioniert HTML-Parsing gar nicht so, wie ich bis vor wenigen Monaten noch gedacht habe

01:07:05.440 --> 01:07:09.080
 und wie, glaube ich, extrem viele Entwickler auch nicht gedacht haben.

01:07:09.080 --> 01:07:16.120
 Und das Problem ist halt, wir können Sanitizing nur lösen, wenn wir auch das Parsing lösen und zwar eindeutig und korrekt.

01:07:17.060 --> 01:07:24.520
 Und was halt noch darüber hinaus kommt, neben der, okay, Parsing ist nicht korrekt und wir haben die Sorge, dass das zu Security-Issues führt,

01:07:24.520 --> 01:07:30.420
 ähm, kommt natürlich noch der, der Anspruch, den ich vielleicht anfangs auch nicht so hatte,

01:07:30.580 --> 01:07:39.040
 Aber, ähm, wenn das halt irgendwie Teil von HTML sein soll und von allen Browsern, äh, die es so gibt,

01:07:39.040 --> 01:07:45.000
 äh, dann müssen wir natürlich auch den Anspruch haben, dass dieses, dieser Sanitizer halt für alle Elemente funktioniert, ne?

01:07:45.000 --> 01:07:48.320
 Es wäre halt doof, wenn manchmal aus Versehen TR-Elemente verschwinden.

01:07:48.980 --> 01:07:51.460
 Ähm, es muss halt für alle funktionieren.

01:07:51.460 --> 01:07:56.660
 Und deswegen können wir auch nicht, das haben wir erst überlegt und so war auch meine, ähm, ich glaube,

01:07:56.660 --> 01:08:00.360
 bis vor ein paar Wochen tatsächlich meine Implementierung in Gecko so,

01:08:00.360 --> 01:08:05.300
 dass wir, dass wir heimlich ein Body-Element erstellt haben, alles da reingepasst haben

01:08:05.300 --> 01:08:07.420
 und dann die Sachen wieder rausgegeben haben.

01:08:07.420 --> 01:08:11.180
 Aber das ist halt eine, eine Komplexität und eine implizite Annahme,

01:08:11.180 --> 01:08:14.840
 die wir in der API dem Entwickler ja abnehmen würden.

01:08:16.380 --> 01:08:20.280
 Und vielleicht will der das gar nicht, vielleicht will der was anderes, ähm,

01:08:20.280 --> 01:08:24.100
 und vielleicht ärgert der sich, wenn irgendwie irgendwelche Elemente nachher verschwinden.

01:08:24.100 --> 01:08:26.080
 Deswegen können wir das leider nicht.

01:08:26.080 --> 01:08:30.680
 Und ich finde es auch ehrlich gesagt immer noch doof.

01:08:30.680 --> 01:08:34.620
 Aber ich habe eine lange Liste von Abwägungen und Pro und Contra

01:08:34.620 --> 01:08:36.820
 und was können wir stattdessen machen und können wir nicht vielleicht.

01:08:36.820 --> 01:08:42.460
 Ähm, aber zu Recht ist tatsächlich die beste Möglichkeit zu sagen,

01:08:42.460 --> 01:08:45.880
 wir versuchen einerseits den Entwickler da abzuholen, wo er ist

01:08:45.880 --> 01:08:48.700
 und das ist vermutlich in der HTML gleich

01:08:48.700 --> 01:08:53.740
 und bieten was an, was ziemlich ähnlich ist

01:08:53.740 --> 01:08:55.240
 und das heißt eben SetHTML.

01:08:55.240 --> 01:08:58.200
 Und das hat halt den richtig, richtig coolen Vorteil,

01:08:58.200 --> 01:08:59.860
 dass da der Kontext immer klar ist, ne?

01:08:59.860 --> 01:09:00.020
 Ja, klar.

01:09:00.020 --> 01:09:03.220
 Denn wenn du foo.setHTML machst, dann ist der Kontext ja foo.

01:09:03.220 --> 01:09:06.380
 Dann ist der, dann ist der nicht nur, nicht nur implizit für uns,

01:09:06.380 --> 01:09:07.900
 sondern ganz explizit für den Entwickler.

01:09:07.900 --> 01:09:10.400
 Er weiß ja genau, wo er es gerade drin haben möchte.

01:09:12.260 --> 01:09:13.460
 Ja, macht's ja auf jeden Fall.

01:09:13.460 --> 01:09:17.020
 Aber so richtig mega zufrieden bin ich leider auch nicht.

01:09:17.020 --> 01:09:19.580
 Und dann gibt's noch eine andere Funktion,

01:09:19.580 --> 01:09:23.720
 ähm, die mehr oder weniger das Gleiche macht,

01:09:23.720 --> 01:09:29.600
 ähm, aber es noch nicht, äh, noch nicht in das aktuelle Dokument reinwirft,

01:09:29.600 --> 01:09:32.740
 wo wir aber nicht so sicher sind, ob wir das überhaupt anbieten müssen,

01:09:32.860 --> 01:09:36.200
 weil, äh, SetHTML ist quasi das Gleiche, nur andersrum.

01:09:36.200 --> 01:09:37.180
 Ich, ich erklär's mal.

01:09:37.180 --> 01:09:41.580
 Es gibt eine Funktion, die heißt Sanitizer.sanitize4,

01:09:41.580 --> 01:09:43.460
 das ist noch kein besonders schöner Name,

01:09:43.460 --> 01:09:45.740
 und das möchte eben genau auch zwei Inputs,

01:09:45.740 --> 01:09:48.820
 nämlich ein Kontext-Element, da schreibe ich dann rein div,

01:09:48.820 --> 01:09:50.020
 und dann den Input.

01:09:50.020 --> 01:09:54.280
 Und was ich zurückkriege, ist halt, weil wir keine Strings mögen,

01:09:54.280 --> 01:09:57.000
 ist halt kein String, sondern ein neues div-Element,

01:09:57.000 --> 01:09:58.780
 was wir für dich erstellt haben,

01:09:59.200 --> 01:10:01.980
 da haben wir alles reingeparst, und dann geben wir's dir in die Hand.

01:10:01.980 --> 01:10:04.940
 Und dann kannst du überlegen, mach ich damit ein Append irgendwo,

01:10:04.940 --> 01:10:10.080
 ähm, oder ist mir das Performance und das neue Parsing komplett egal,

01:10:10.080 --> 01:10:12.480
 und klau ich mir von dem Element dann das innerHTML

01:10:12.480 --> 01:10:15.120
 und speichere das weg oder benutze das irgendwo anders.

01:10:15.120 --> 01:10:19.620
 Ähm, aber das möchten wir halt ganz explizit abraten,

01:10:19.620 --> 01:10:22.060
 denn wenn du's für div ursprünglich mal geparst hast,

01:10:22.060 --> 01:10:26.140
 dann solltest du's auch unbedingt in einem div später wieder benutzen

01:10:26.140 --> 01:10:26.840
 und nicht woanders.

01:10:28.260 --> 01:10:31.260
 äh, denn das kann tatsächlich zu Sicherheitslücken führen.

01:10:31.260 --> 01:10:34.180
 Und ein typisches Beispiel ist, ähm,

01:10:34.180 --> 01:10:38.120
 ähm, eine Art, eine Unterart von XSS,

01:10:38.120 --> 01:10:40.320
 die, ähm,

01:10:40.320 --> 01:10:42.240
 ähm, MXSS heißt,

01:10:42.240 --> 01:10:44.580
 M für Mutated XSS,

01:10:44.580 --> 01:10:46.980
 was tatsächlich auf der Idee basiert,

01:10:46.980 --> 01:10:49.100
 dass du bestimmtes Mark-up schreiben kannst,

01:10:49.100 --> 01:10:50.640
 bestimmtes HTML schreiben kannst,

01:10:50.640 --> 01:10:53.000
 was sich, je nachdem, in welchem

01:10:53.000 --> 01:10:55.560
 Kontext-Element es hinzugefügt wird,

01:10:55.560 --> 01:10:57.020
 harmlos ist oder eben nicht harmlos.

01:10:57.320 --> 01:11:00.800
 und dann doch zu Crossout-Scripting führen kann.

01:11:00.800 --> 01:11:02.940
 Ich hab noch nie vorher gehört, den Begriff.

01:11:02.940 --> 01:11:04.360
 Tatsächlich.

01:11:04.360 --> 01:11:06.240
 Ähm, ja, dann wünschte ich mir,

01:11:06.240 --> 01:11:08.840
 ich könnte mit einem richtig, richtig guten Beispiel ausholen,

01:11:08.840 --> 01:11:09.680
 aber ich glaube,

01:11:09.680 --> 01:11:11.380
 ähm,

01:11:11.380 --> 01:11:12.340
 also ich kenn's noch nicht.

01:11:12.340 --> 01:11:14.340
 Na, dann erklär ich's.

01:11:14.340 --> 01:11:15.000
 Warte mal, ich hab

01:11:15.000 --> 01:11:18.480
 hier einen schönen

01:11:18.480 --> 01:11:21.040
 Ding, ding, ding, ding, ding, ding, ding.

01:11:21.040 --> 01:11:22.440
 Vielleicht auch nicht.

01:11:24.040 --> 01:11:25.580
 Und das, äh, schafft's dann auch

01:11:25.580 --> 01:11:27.560
 um Dom Purify drumherum, oder?

01:11:27.560 --> 01:11:29.560
 Die haben's tatsächlich mehrere Male

01:11:29.560 --> 01:11:31.340
 um Dom Purify rumgeschafft.

01:11:31.340 --> 01:11:32.500
 Ähm,

01:11:32.500 --> 01:11:34.560
 Dom Purify enthält mittlerweile

01:11:34.560 --> 01:11:35.500
 diverse Hacks,

01:11:35.500 --> 01:11:35.940
 um

01:11:35.940 --> 01:11:37.560
 Dinge zu erkennen

01:11:37.560 --> 01:11:38.560
 oder Dinge zu erlauben,

01:11:38.560 --> 01:11:38.980
 die einfach

01:11:38.980 --> 01:11:40.640
 obskur genug sind,

01:11:40.640 --> 01:11:41.260
 dass sie sagen können,

01:11:41.260 --> 01:11:42.280
 ja, aber wir wollen das halt auch

01:11:42.280 --> 01:11:42.980
 einfach nicht unterstützen.

01:11:43.100 --> 01:11:43.680
 Wir sind in der Library,

01:11:43.680 --> 01:11:45.340
 wir machen das jetzt so,

01:11:45.340 --> 01:11:45.620
 fertig.

01:11:45.620 --> 01:11:46.760
 Ähm,

01:11:46.760 --> 01:11:48.100
 und das ist halt auch so ein bisschen

01:11:48.100 --> 01:11:49.180
 die Freiheit, die sie haben,

01:11:49.180 --> 01:11:50.180
 dass sie sagen können, so,

01:11:50.180 --> 01:11:52.080
 dein Use Case ist mir zu abgefahren,

01:11:52.080 --> 01:11:53.020
 mach ich nicht.

01:11:53.020 --> 01:11:56.120
 Wenn wir halt tatsächlich es schaffen,

01:11:56.120 --> 01:11:57.220
 ähm,

01:11:57.220 --> 01:11:59.240
 und momentan sieht's relativ gut aus,

01:11:59.240 --> 01:12:00.960
 Teil der HTML-Spec zu werden

01:12:00.960 --> 01:12:02.300
 mit unserer Sanitizer-API,

01:12:02.300 --> 01:12:03.720
 dann, äh,

01:12:03.720 --> 01:12:05.360
 dann ist es halt in Stein gemeißelt,

01:12:05.360 --> 01:12:06.000
 so, dann,

01:12:06.000 --> 01:12:07.820
 dann kannst halt erst ein Browser,

01:12:07.820 --> 01:12:08.640
 dann könnt's zwei Browser,

01:12:08.640 --> 01:12:09.340
 dann könnt's hoffentlich,

01:12:09.340 --> 01:12:10.400
 hoffentlich noch mehr,

01:12:10.400 --> 01:12:12.760
 und dann ist es Teil der HTML-Spezifikation,

01:12:12.820 --> 01:12:13.900
 das kannst du halt nicht einfach so

01:12:13.900 --> 01:12:15.400
 wegnehmen oder ändern oder sagen.

01:12:15.400 --> 01:12:17.440
 Für dieses eine Element halt nicht.

01:12:17.440 --> 01:12:19.360
 Das wär halt komisch, ne?

01:12:19.360 --> 01:12:20.640
 Ähm,

01:12:20.640 --> 01:12:22.120
 ich glaube,

01:12:22.120 --> 01:12:23.540
 ich hab ein Beispiel gefunden,

01:12:23.540 --> 01:12:25.940
 aber es ist extrem abgefahren.

01:12:25.940 --> 01:12:27.800
 Dafür sind wir hier.

01:12:27.800 --> 01:12:30.160
 Schön.

01:12:30.160 --> 01:12:32.780
 Und das basiert auf

01:12:32.780 --> 01:12:34.540
 einem Angriff von

01:12:34.540 --> 01:12:36.460
 Michał Bentkowski aus Polen,

01:12:36.460 --> 01:12:38.720
 der häufiger mal Lücken in

01:12:38.720 --> 01:12:39.660
 Don Purify findet

01:12:39.660 --> 01:12:41.440
 und dann ausführliche Blogposts überschreibt.

01:12:42.220 --> 01:12:43.180
 und, ähm,

01:12:43.180 --> 01:12:44.180
 sein,

01:12:44.180 --> 01:12:45.300
 und das ist, glaube ich,

01:12:45.300 --> 01:12:47.160
 nur mit Audio ist es schwierig.

01:12:47.160 --> 01:12:48.940
 Ich schick euch nochmal die Links

01:12:48.940 --> 01:12:50.140
 und dann tun wir das in die Shownotes.

01:12:50.140 --> 01:12:52.220
 Das macht tatsächlich Spaß zu lesen,

01:12:52.220 --> 01:12:53.460
 aber es ist extrem abgefahren.

01:12:54.340 --> 01:12:55.280
 Die Idee ist,

01:12:55.280 --> 01:13:00.140
 dass du verschiedene Elemente hast,

01:13:00.140 --> 01:13:02.280
 die verschiedene Bedeutungen haben,

01:13:02.280 --> 01:13:03.160
 je nachdem,

01:13:03.160 --> 01:13:05.640
 ob sie zum Beispiel in SVG drin sind

01:13:05.640 --> 01:13:06.680
 oder im HTML.

01:13:06.680 --> 01:13:08.700
 Ein Beispiel zum Beispiel ist,

01:13:08.700 --> 01:13:10.420
 dass es ein SVG-P-Element gibt

01:13:10.420 --> 01:13:10.800
 und ich glaube,

01:13:10.800 --> 01:13:11.800
 das ist für Path, ne?

01:13:12.760 --> 01:13:14.500
 und ein HTML-P-Element gibt

01:13:14.500 --> 01:13:17.040
 und das ist für Paragraph,

01:13:17.040 --> 01:13:18.080
 also für einen neuen Absatz

01:13:18.080 --> 01:13:21.240
 und, ähm,

01:13:21.240 --> 01:13:22.180
 natürlich,

01:13:22.180 --> 01:13:22.640
 je nachdem,

01:13:22.640 --> 01:13:23.560
 in welches Kind-Element

01:13:23.560 --> 01:13:24.720
 du halt so ein P reinmachst,

01:13:24.720 --> 01:13:26.240
 ist es natürlich was komplett anderes

01:13:26.240 --> 01:13:28.980
 und der hat es geschafft,

01:13:28.980 --> 01:13:30.340
 das für einen Angriff zu nutzen.

01:13:30.340 --> 01:13:32.100
 Ich finde aber jetzt

01:13:32.100 --> 01:13:33.840
 nur seinen anderen Blogpost

01:13:33.840 --> 01:13:35.380
 und da ist es ein komplett anderes Beispiel

01:13:35.380 --> 01:13:36.220
 und jetzt habe ich, glaube ich,

01:13:36.220 --> 01:13:36.960
 den Fehler gemacht,

01:13:37.920 --> 01:13:38.860
 ganz weit auszuholen

01:13:38.860 --> 01:13:40.260
 und dann was anderes erklären zu müssen.

01:13:40.260 --> 01:13:41.860
 Ich würde sagen,

01:13:41.860 --> 01:13:43.600
 ich würde tatsächlich sagen,

01:13:43.600 --> 01:13:44.520
 wir klammern das aus

01:13:44.520 --> 01:13:45.640
 und es ist wirklich cooler,

01:13:45.640 --> 01:13:47.220
 das ausführlich in Ruhe zu lesen,

01:13:47.220 --> 01:13:47.920
 wenn man da tiefer gehen möchte.

01:13:47.920 --> 01:13:48.140
 Genau, also,

01:13:48.140 --> 01:13:49.560
 dann liefern wir die Links nach.

01:13:49.560 --> 01:13:50.600
 An der Stelle würde ich,

01:13:50.600 --> 01:13:51.240
 würde ich das,

01:13:51.240 --> 01:13:51.680
 ähm,

01:13:51.680 --> 01:13:52.840
 das Hand-Wavy sagen,

01:13:52.840 --> 01:13:54.080
 ähm,

01:13:54.080 --> 01:13:56.080
 an der Stelle können wir uns einig sein,

01:13:56.080 --> 01:13:57.100
 es gibt Elemente,

01:13:57.100 --> 01:13:58.760
 die natürlich radikal anders

01:13:58.760 --> 01:14:00.060
 vom Browser verstanden werden,

01:14:00.060 --> 01:14:00.620
 je nachdem,

01:14:00.620 --> 01:14:01.700
 in welchem Kontext sie sind.

01:14:01.700 --> 01:14:03.080
 Eben ein Beispiel der,

01:14:03.080 --> 01:14:03.980
 der Table-Row,

01:14:03.980 --> 01:14:05.120
 die ich vorhin hatte

01:14:05.120 --> 01:14:05.980
 oder halt einem Beispiel

01:14:05.980 --> 01:14:07.380
 des P-Elements in SVG,

01:14:07.800 --> 01:14:09.380
 versus das P-Element in HTML

01:14:09.380 --> 01:14:11.520
 und dass man daraus

01:14:11.520 --> 01:14:12.880
 Angriffe stricken kann,

01:14:12.880 --> 01:14:14.900
 müsst ihr mir an der Stelle glauben,

01:14:14.900 --> 01:14:17.580
 aber halt nur für höchstens

01:14:17.580 --> 01:14:19.080
 zehn Sekunden,

01:14:19.080 --> 01:14:20.080
 weil ihr als Hörer

01:14:20.080 --> 01:14:21.120
 ja auf Pause drücken könnt

01:14:21.120 --> 01:14:22.200
 und den Link anklicken könnt

01:14:22.200 --> 01:14:22.620
 und dann wird

01:14:22.620 --> 01:14:24.180
 hoffentlich alles klar.

01:14:24.180 --> 01:14:26.660
 Sehr gut.

01:14:26.660 --> 01:14:27.640
 Und ihr beiden halt jetzt

01:14:27.640 --> 01:14:28.180
 ein bisschen länger.

01:14:28.180 --> 01:14:29.400
 Genau,

01:14:29.400 --> 01:14:30.540
 wir müssen noch ein bisschen warten.

01:14:30.540 --> 01:14:32.040
 Genau,

01:14:32.040 --> 01:14:32.720
 aber die,

01:14:32.720 --> 01:14:33.840
 ja,

01:14:33.840 --> 01:14:35.040
 also das grundlegende Problem

01:14:35.040 --> 01:14:35.680
 ist halt leider,

01:14:35.680 --> 01:14:37.000
 wir wollen den Entwicklern

01:14:37.000 --> 01:14:38.460
 eigentlich nicht so gerne

01:14:38.460 --> 01:14:39.200
 Strings geben

01:14:39.200 --> 01:14:40.060
 und das zu begründen

01:14:40.060 --> 01:14:41.220
 ist natürlich ein bisschen schwierig

01:14:41.220 --> 01:14:42.120
 und ein bisschen doof,

01:14:42.120 --> 01:14:43.400
 aber ich finde halt auch

01:14:43.400 --> 01:14:44.620
 den Performance-Aspekt

01:14:44.620 --> 01:14:46.060
 eigentlich relativ schön,

01:14:46.060 --> 01:14:46.580
 dass wir sagen,

01:14:46.580 --> 01:14:47.240
 wir wollen halt auch

01:14:47.240 --> 01:14:48.720
 den String nicht nochmal parsen,

01:14:48.720 --> 01:14:49.360
 das macht ja irgendwie

01:14:49.360 --> 01:14:49.840
 keinen Sinn,

01:14:49.840 --> 01:14:51.340
 gerade wenn es relativ viel

01:14:51.340 --> 01:14:51.900
 Input ist,

01:14:51.900 --> 01:14:53.320
 ist es ja auch doof

01:14:53.320 --> 01:14:54.340
 für die Webseite

01:14:54.340 --> 01:14:55.160
 und für die Performance,

01:14:55.160 --> 01:14:56.640
 das doppelt zu tun.

01:15:00.060 --> 01:15:00.400
 ja,

01:15:00.400 --> 01:15:01.600
 es leuchtet auf jeden Fall

01:15:01.600 --> 01:15:01.900
 ein.

01:15:01.900 --> 01:15:04.620
 Schön.

01:15:04.620 --> 01:15:04.780
 Okay,

01:15:04.780 --> 01:15:05.880
 dann haben wir so,

01:15:05.880 --> 01:15:07.560
 das ist echt so das,

01:15:07.560 --> 01:15:09.500
 ich finde das Haarigste,

01:15:09.500 --> 01:15:12.180
 aber irgendwie auch das Wichtigste,

01:15:12.180 --> 01:15:12.780
 weil wenn ich halt,

01:15:12.780 --> 01:15:15.540
 wenn ich halt nachher,

01:15:15.540 --> 01:15:16.960
 wenn ich euch nachher erwische,

01:15:16.960 --> 01:15:18.120
 dass ihr die Sanitizer-API

01:15:18.120 --> 01:15:18.880
 falsch benutzt,

01:15:18.880 --> 01:15:21.480
 dann bin ich ziemlich enttäuscht

01:15:21.480 --> 01:15:23.420
 und mehr kann ich leider auch nicht tun.

01:15:23.420 --> 01:15:23.960
 Nein,

01:15:23.960 --> 01:15:25.080
 dann ist es halt irgendwie,

01:15:26.240 --> 01:15:27.380
 also ich habe mir halt was vorgenommen

01:15:27.380 --> 01:15:27.820
 und ich möchte,

01:15:27.820 --> 01:15:28.660
 dass es klappt so

01:15:28.660 --> 01:15:31.180
 und das geht natürlich nicht darum,

01:15:31.180 --> 01:15:32.320
 dass ich persönlich enttäuscht bin,

01:15:32.320 --> 01:15:32.980
 sondern es geht darum,

01:15:32.980 --> 01:15:36.340
 dass wir was geben,

01:15:36.340 --> 01:15:37.460
 was die Entwickler wirklich,

01:15:37.460 --> 01:15:38.520
 wirklich da abholt,

01:15:38.520 --> 01:15:39.140
 wo sie sind

01:15:39.140 --> 01:15:42.200
 und da sind wir natürlich,

01:15:42.200 --> 01:15:43.120
 da ist auch das letzte Wort

01:15:43.120 --> 01:15:43.580
 nicht gesprochen,

01:15:43.580 --> 01:15:45.000
 das ist übrigens eine ganz wichtige Sache,

01:15:45.000 --> 01:15:45.760
 die ich auf jeden Fall

01:15:45.760 --> 01:15:47.080
 mehrfach noch erwähnen sollte.

01:15:47.080 --> 01:15:50.280
 Wenn irgendwas völlig blödsinnig ist

01:15:50.280 --> 01:15:52.060
 oder auf eine andere Art und Weise

01:15:52.060 --> 01:15:53.400
 vielleicht deutlich naheliegender

01:15:53.400 --> 01:15:54.680
 für den Entwickler,

01:15:54.680 --> 01:15:55.580
 also für euch Hörer,

01:15:56.180 --> 01:15:57.620
 dann müssen wir das wissen,

01:15:57.620 --> 01:15:59.240
 denn jetzt ist noch der Zeitpunkt,

01:15:59.240 --> 01:16:00.640
 wo wir die Spezifikation schreiben,

01:16:00.640 --> 01:16:01.680
 jetzt ist noch,

01:16:01.680 --> 01:16:03.040
 wo ich den Patch offen habe,

01:16:03.040 --> 01:16:06.200
 in zwei Jahren ist es halt schwierig,

01:16:06.200 --> 01:16:06.580
 so.

01:16:06.580 --> 01:16:09.620
 Natürlich sind die Feedback-Cycles

01:16:09.620 --> 01:16:10.580
 immer eher lang

01:16:10.580 --> 01:16:12.260
 und ich muss mich übrigens

01:16:12.260 --> 01:16:13.940
 für meine ganzen Anglizismen entschuldigen,

01:16:13.940 --> 01:16:14.800
 aber wenn ich auf der Arbeit

01:16:14.800 --> 01:16:15.740
 über Websicherheit rede,

01:16:15.740 --> 01:16:18.080
 dann rede ich da nie auf Deutsch drüber.

01:16:18.080 --> 01:16:20.760
 Bitte verzeiht mir.

01:16:20.760 --> 01:16:23.560
 Genau, also normalerweise ist es halt oft so,

01:16:23.560 --> 01:16:24.720
 dass man Standard entwickelt

01:16:24.720 --> 01:16:26.460
 und dann dauert das irgendwie,

01:16:26.460 --> 01:16:27.060
 keine Ahnung,

01:16:27.060 --> 01:16:27.620
 ein halbes Jahr,

01:16:27.620 --> 01:16:28.900
 dann hat man eine Spezifikation

01:16:28.900 --> 01:16:29.880
 oder wahrscheinlich sogar länger,

01:16:29.880 --> 01:16:31.800
 dann hat man eine Implementierung,

01:16:31.800 --> 01:16:33.720
 dann dauert das irgendwie nochmal drei Monate,

01:16:33.720 --> 01:16:35.020
 bis es von Fivebox Nightly

01:16:35.020 --> 01:16:36.000
 in Fivebox Release ist

01:16:36.000 --> 01:16:36.720
 und dann sagen die Leute,

01:16:36.720 --> 01:16:38.000
 das ist aber kacke.

01:16:38.000 --> 01:16:40.120
 Und dann ist es aber vielleicht zu spät.

01:16:40.120 --> 01:16:42.480
 Von daher bin ich jetzt aus diesem Grund

01:16:42.480 --> 01:16:43.560
 zum Beispiel hier im Podcast

01:16:43.560 --> 01:16:46.480
 und von daher gibt es auch Blogposts

01:16:46.480 --> 01:16:48.020
 und ich glaube künftig sogar ein paar mehr

01:16:48.020 --> 01:16:49.140
 zur Sanitizer-API,

01:16:49.140 --> 01:16:51.420
 um eben zu erklären, was wir tun,

01:16:51.420 --> 01:16:53.380
 aber auch gleichzeitig einzuladen,

01:16:53.380 --> 01:16:54.580
 hey, wenn das nicht stimmt,

01:16:54.580 --> 01:16:55.220
 wenn ihr glaubt,

01:16:55.220 --> 01:16:56.380
 dass es anders besser geht

01:16:56.380 --> 01:16:57.900
 oder wenn ihr glaubt,

01:16:57.900 --> 01:17:00.680
 dass es an manchen Stellen vielleicht okay ist,

01:17:00.680 --> 01:17:02.620
 irgendwie doch eine Abkürzung zu nehmen oder so,

01:17:02.620 --> 01:17:04.720
 dann lasst uns unbedingt drüber reden,

01:17:04.720 --> 01:17:06.100
 denn wir wollen es halt lösen.

01:17:06.100 --> 01:17:07.100
 Wir wollen es nicht machen,

01:17:07.100 --> 01:17:08.480
 wie es für uns cool ist,

01:17:08.480 --> 01:17:09.440
 sondern wir wollen es so machen,

01:17:09.440 --> 01:17:10.560
 dass es wirklich läuft.

01:17:11.100 --> 01:17:11.920
 Das ist ein sehr guter Punkt.

01:17:11.920 --> 01:17:13.400
 Ich glaube, das ist vielen auch gar nicht bewusst,

01:17:13.400 --> 01:17:14.460
 dass man die Möglichkeit hat,

01:17:14.460 --> 01:17:16.460
 so frühzeitig reinzugrätschen

01:17:16.460 --> 01:17:17.780
 und dass es dann halt schon zu spät ist,

01:17:17.780 --> 01:17:19.540
 wenn es dann halt mal in den Brunnen gefallen ist.

01:17:19.540 --> 01:17:21.800
 Da können wir gerne nachher noch drauf zu sprechen kommen,

01:17:21.800 --> 01:17:22.900
 welche Möglichkeit man da hat,

01:17:22.900 --> 01:17:24.740
 so Einfluss zu nehmen.

01:17:24.740 --> 01:17:27.460
 Können wir tatsächlich von mir aus sogar jetzt.

01:17:27.460 --> 01:17:29.980
 Ist nämlich relativ einfach.

01:17:29.980 --> 01:17:33.120
 Wenn man in Firefox unterwegs ist,

01:17:33.120 --> 01:17:35.560
 dann kann ich sehr empfehlen,

01:17:35.560 --> 01:17:37.720
 im Allgemeinen zum Website-Testing,

01:17:37.720 --> 01:17:38.640
 zum Entwickeln

01:17:38.640 --> 01:17:40.860
 oder um mal neue Features sich anzugucken.

01:17:40.960 --> 01:17:42.640
 es gibt die Firefox Developer Edition

01:17:42.640 --> 01:17:44.720
 oder einfach die Nightly Builds,

01:17:44.720 --> 01:17:45.620
 Firefox Nightly.

01:17:45.620 --> 01:17:50.280
 Da sind immer die aktuellsten Iterationen drin.

01:17:50.280 --> 01:17:51.580
 Wie gesagt, wir sind mit dem Sanitizer

01:17:51.580 --> 01:17:52.900
 noch nicht hundertprozentig fertig.

01:17:52.900 --> 01:17:54.820
 Da kann man rumexperimentieren.

01:17:54.820 --> 01:17:57.040
 In Firefox gibt es eine Prev.

01:17:57.040 --> 01:17:58.740
 Das ist ein bisschen kompliziert,

01:17:58.740 --> 01:18:00.440
 aber da gibt es auch Anleitungen im Web zu.

01:18:00.440 --> 01:18:02.960
 Man macht einen neuen Tab auf,

01:18:02.960 --> 01:18:05.080
 geht auf die Seite about.config.

01:18:05.080 --> 01:18:06.900
 Da sind die ganzen versteckten Optionen

01:18:06.900 --> 01:18:10.240
 und tippt da Sanitizer ein.

01:18:10.240 --> 01:18:13.060
 Und dann findet man eine Konfig mit dem Titel,

01:18:13.060 --> 01:18:13.720
 ich glaube,

01:18:13.720 --> 01:18:16.220
 DOM Security Sanitizer Enabled

01:18:16.220 --> 01:18:17.560
 und setzt die auf True.

01:18:17.560 --> 01:18:20.800
 Und dann kann man die Dev-Tools aufmachen

01:18:20.800 --> 01:18:22.780
 und hat einfach diesen Sanitizer-Konstruktor da.

01:18:22.780 --> 01:18:27.480
 Und es gibt auch sogenannte Sanitizer-Playgrounds,

01:18:27.480 --> 01:18:28.220
 also Webseiten,

01:18:28.220 --> 01:18:30.760
 die tatsächlich einem das so ein bisschen nahe legen,

01:18:30.760 --> 01:18:32.240
 wie das für den Entwickler aussehen würde.

01:18:32.240 --> 01:18:35.340
 Mike West hat da einen geschrieben,

01:18:36.540 --> 01:18:40.420
 der ist einfach Sanitizer.dev, glaube ich.

01:18:40.420 --> 01:18:43.680
 Nee, Sanitizer-API.dev.

01:18:43.680 --> 01:18:45.340
 Und wenn man da drauf geht,

01:18:45.340 --> 01:18:47.600
 dann sagt der für euch jetzt wahrscheinlich,

01:18:47.600 --> 01:18:49.020
 hey, ihr habt den Sanitizer nicht,

01:18:49.020 --> 01:18:50.080
 aber wenn man die Prev anhat,

01:18:50.080 --> 01:18:52.740
 dann gibt er ein Beispiel mit Input

01:18:52.740 --> 01:18:55.560
 und Kontextelement und Output und so weiter.

01:18:55.560 --> 01:18:57.500
 Ich habe es gerade live mal gemacht,

01:18:57.500 --> 01:18:58.800
 stimmt alles, was du sagst.

01:18:59.800 --> 01:19:01.500
 Live mitgetippt.

01:19:01.500 --> 01:19:04.600
 Yes, und wenn man in Chrome unterwegs ist,

01:19:04.600 --> 01:19:06.740
 dann ist das bereits in Chrome,

01:19:06.740 --> 01:19:08.900
 ich weiß nicht, ob in Chrome Beta

01:19:08.900 --> 01:19:10.000
 oder schon in Chrome Release.

01:19:10.000 --> 01:19:11.500
 Ich glaube, es ist schon in Chrome Release,

01:19:11.500 --> 01:19:14.960
 wenn man Web Experimental Web Platform Features aktiviert hat.

01:19:14.960 --> 01:19:19.860
 Also hier steht ab 96, 97 im Chrome kann man es aktivieren.

01:19:19.860 --> 01:19:22.140
 Ah ja, dann ist es, glaube ich, noch nicht Release, ne?

01:19:22.140 --> 01:19:24.160
 Genau, den 94er haben wir aktuell.

01:19:24.160 --> 01:19:27.460
 Also auf jeden Fall einfach mal damit rumspielen am besten.

01:19:27.460 --> 01:19:29.080
 Das werde ich jetzt auch gleich mal machen.

01:19:29.560 --> 01:19:32.620
 Genau, und dann kann man halt nicht sagen,

01:19:32.620 --> 01:19:34.360
 ich finde grundsätzlich was doof,

01:19:34.360 --> 01:19:35.780
 sondern kann man auch ganz spezifisch sagen,

01:19:35.780 --> 01:19:38.260
 ich finde grundsätzlich doof und hier ist ein Beispiel,

01:19:38.260 --> 01:19:41.680
 ich habe das mal, das ist immer produktiver natürlich.

01:19:41.680 --> 01:19:48.040
 Und genau, unsere Spec ist ganz einfach,

01:19:48.040 --> 01:19:50.240
 wie übrigens sehr, sehr, sehr viele Specs,

01:19:50.240 --> 01:19:52.560
 ein GitHub Repository mit Issues.

01:19:52.560 --> 01:19:54.580
 Und da steht halt zum Beispiel drin,

01:19:54.580 --> 01:19:55.800
 was wir noch nicht gelöst haben,

01:19:55.800 --> 01:19:59.240
 was wir nämlich zum Beispiel noch nicht richtig sauber gelöst haben,

01:19:59.320 --> 01:20:02.540
 ist so ein bisschen Namespacing-Sache,

01:20:02.540 --> 01:20:03.340
 wenn es darum geht,

01:20:03.340 --> 01:20:06.780
 was man als erlaubte Elemente übergeben möchte

01:20:06.780 --> 01:20:11.200
 für so obskure Sachen wie SVG oder MathML,

01:20:11.200 --> 01:20:13.700
 was ich tatsächlich bis jetzt immer nur

01:20:13.700 --> 01:20:17.440
 in meiner Web-Security-Karriere gesehen habe,

01:20:17.440 --> 01:20:19.080
 als etwas, das Leute benutzen,

01:20:19.200 --> 01:20:21.160
 Parser und Libraries aus dem Konzept zu bringen.

01:20:21.160 --> 01:20:23.460
 Aber ihr als Frontend-Leute macht wahrscheinlich

01:20:23.460 --> 01:20:24.880
 den ganzen Tag MathML.

01:20:24.880 --> 01:20:25.520
 Ja, klar.

01:20:25.520 --> 01:20:26.220
 Bin ich mir sicher.

01:20:26.220 --> 01:20:29.420
 Ich habe mich darauf spezialisiert sogar,

01:20:29.420 --> 01:20:30.500
 ich mache schon gar nichts anderes.

01:20:33.720 --> 01:20:35.360
 Also ich gehöre zu den Menschen,

01:20:35.360 --> 01:20:37.860
 die SVG schon von Hand geschrieben haben,

01:20:37.860 --> 01:20:40.100
 aber nicht die Paths.

01:20:40.100 --> 01:20:41.220
 Das muss ich zugeben,

01:20:41.220 --> 01:20:42.180
 das habe ich auch noch nicht.

01:20:42.180 --> 01:20:43.760
 Das ist cool.

01:20:43.760 --> 01:20:47.380
 Ja, und das ist zum Beispiel noch nicht so komplett klar.

01:20:47.380 --> 01:20:51.180
 Und dann auch so ein paar andere Issues,

01:20:51.180 --> 01:20:54.060
 die jetzt gar nicht so sehr sich um die API handeln

01:20:54.060 --> 01:20:55.200
 und wie das für den Entwickler ist,

01:20:55.280 --> 01:20:57.860
 sondern einfach wie wir Dinge ausformuliert haben

01:20:57.860 --> 01:20:59.220
 in unserer Spezifikation.

01:20:59.220 --> 01:21:02.660
 Und so eine Spezifikation lebt ja auch nicht alleine.

01:21:02.660 --> 01:21:04.620
 Ganz viele Begriffe, die wir benutzen,

01:21:04.620 --> 01:21:07.000
 müssen wir ordentlich verlinken mit HTML,

01:21:07.000 --> 01:21:08.940
 Spec und so weiter und so weiter.

01:21:08.940 --> 01:21:13.300
 Weil manche Begriffe halt auch teilweise ein bisschen obskur sind,

01:21:13.300 --> 01:21:14.320
 muss man einfach sagen.

01:21:14.320 --> 01:21:18.060
 Und das, was man vielleicht umgangssprachlich sagen würde,

01:21:18.060 --> 01:21:19.420
 nicht unbedingt dem entspricht,

01:21:19.420 --> 01:21:20.560
 was man sehen würde,

01:21:22.420 --> 01:21:25.720
 wenn man einfach so mit JavaScript herumspielt.

01:21:25.720 --> 01:21:30.660
 Genau, und die Google Developer Advocates

01:21:30.660 --> 01:21:33.400
 haben auch, ich glaube, gestern oder vorgestern

01:21:33.400 --> 01:21:35.420
 einen Blogpost geschrieben zur Sanitizer API.

01:21:35.420 --> 01:21:38.020
 Von daher kriegen wir gerade sowieso ein bisschen mehr Feedback

01:21:38.020 --> 01:21:39.380
 in unserem GitHub-Repo

01:21:39.380 --> 01:21:40.660
 und freuen uns tatsächlich sehr,

01:21:40.660 --> 01:21:41.540
 wenn wir ein bisschen kriegen.

01:21:41.540 --> 01:21:44.120
 Da ist der Artikel,

01:21:44.120 --> 01:21:46.340
 das können wir auch in die Show Notes werfen,

01:21:46.340 --> 01:21:49.780
 web.dev.sanitizer.

01:21:50.120 --> 01:21:53.300
 gibt es auch einen relativ frischen Artikel zur Sanitizer API.

01:21:53.300 --> 01:21:55.500
 Sehr gut, gleich mal notiert.

01:21:55.500 --> 01:21:59.120
 Aber ich werde wohl auch noch ein oder zwei schreiben müssen,

01:21:59.120 --> 01:22:01.540
 weil ich ein bisschen das Gefühl habe,

01:22:01.540 --> 01:22:02.500
 ich muss mich rechtfertigen,

01:22:02.500 --> 01:22:03.420
 aber ein bisschen das Gefühl habe,

01:22:03.420 --> 01:22:04.180
 ist es auch wichtig,

01:22:04.180 --> 01:22:07.620
 dass es ankommt mit der Tatsache,

01:22:07.620 --> 01:22:09.620
 dass wir irgendwie nicht so gerne Strings zurückgeben wollen

01:22:09.620 --> 01:22:12.040
 und uns da so zögerlich geben,

01:22:12.040 --> 01:22:12.780
 sage ich mal.

01:22:14.300 --> 01:22:15.220
 Auf der anderen Seite,

01:22:15.220 --> 01:22:17.160
 da wollte ich vorhin noch eigentlich noch mal kurz einhaken,

01:22:17.160 --> 01:22:17.860
 kann ich jetzt machen,

01:22:17.860 --> 01:22:19.620
 ist es natürlich aber auch wichtig,

01:22:19.620 --> 01:22:24.320
 dass die Fehlbenutzung möglichst ausgeschlossen wird,

01:22:24.320 --> 01:22:25.980
 also dass es möglichst intuitiv ist.

01:22:25.980 --> 01:22:27.020
 Und ich kann verstehen,

01:22:27.020 --> 01:22:30.300
 dass ihr bestimmte Sachen aus Gründen nicht machen wollt,

01:22:30.300 --> 01:22:31.080
 aber ich glaube,

01:22:31.080 --> 01:22:33.380
 da muss man gründlich abwägen an der Stelle auf jeden Fall.

01:22:33.380 --> 01:22:34.500
 Weil ich glaube,

01:22:34.540 --> 01:22:35.800
 Ich glaube an der Stelle,

01:22:35.800 --> 01:22:37.320
 wenn ich das jetzt,

01:22:37.320 --> 01:22:38.740
 wenn ich so eine API designen würde,

01:22:38.740 --> 01:22:39.600
 würde ich wahrscheinlich,

01:22:39.600 --> 01:22:42.040
 wenn ich diesen Kompromiss jetzt machen müsste,

01:22:42.040 --> 01:22:46.540
 ich würde wahrscheinlich mich für einfache Benutzbarkeit entscheiden

01:22:46.540 --> 01:22:47.160
 und für das,

01:22:47.160 --> 01:22:48.560
 für intuitive Benutzbarkeit

01:22:48.560 --> 01:22:51.280
 und vielleicht für das letzte Quäntchen

01:22:51.280 --> 01:22:54.340
 perfekt ausdefiniert oder so.

01:22:54.340 --> 01:22:55.700
 Ist schwierig,

01:22:55.700 --> 01:22:56.540
 aber ich glaube,

01:22:56.540 --> 01:22:58.140
 das macht es auf jeden Fall einfacher,

01:22:58.140 --> 01:22:59.500
 dass es die Leute verstehen.

01:22:59.500 --> 01:23:00.680
 Also ich finde nichts schlimmer,

01:23:00.680 --> 01:23:02.140
 als eine schlecht designte API,

01:23:02.140 --> 01:23:04.140
 wo ich jedes Mal nachgucken muss,

01:23:04.180 --> 01:23:05.000
 wie sie jetzt funktioniert.

01:23:05.000 --> 01:23:06.480
 Genau.

01:23:06.480 --> 01:23:08.300
 Und das ist jetzt die schlecht designte API,

01:23:08.300 --> 01:23:09.540
 wo du nur die eine Folge,

01:23:09.540 --> 01:23:11.700
 wo wir sie jetzt vorne hören musst.

01:23:11.700 --> 01:23:12.180
 Genau.

01:23:12.180 --> 01:23:14.880
 Musst nur sie so einen Podcast.

01:23:14.880 --> 01:23:16.820
 Ist tatsächlich,

01:23:16.820 --> 01:23:17.380
 ich glaube nicht,

01:23:17.380 --> 01:23:18.160
 dass sie schlecht designt ist,

01:23:18.160 --> 01:23:18.960
 aber es ist tatsächlich so,

01:23:18.960 --> 01:23:20.920
 dass ich natürlich kein API-Designer bin.

01:23:20.920 --> 01:23:21.760
 Also ich mache das,

01:23:21.760 --> 01:23:23.860
 ich habe Websicherheit verstanden

01:23:23.860 --> 01:23:25.320
 und ich glaube einigermaßen gut,

01:23:25.320 --> 01:23:28.380
 aber das ist für mich halt auch so ein Territorium,

01:23:28.380 --> 01:23:30.300
 wo ich ganz, ganz gierig bin,

01:23:30.300 --> 01:23:31.200
 Feedback zu erhalten.

01:23:31.200 --> 01:23:32.540
 Und das Gleiche gilt,

01:23:32.540 --> 01:23:33.900
 das habe ich gar nicht erwähnt,

01:23:33.900 --> 01:23:34.720
 schandhaft,

01:23:34.720 --> 01:23:36.020
 ich bin nicht der Typ,

01:23:36.020 --> 01:23:37.340
 der die Sanitizer API macht,

01:23:37.340 --> 01:23:38.440
 ich bin einer von drei Typen,

01:23:38.440 --> 01:23:39.860
 die die Sanitizer API machen.

01:23:39.860 --> 01:23:42.100
 Also die Spezifikation hat drei Autoren,

01:23:42.100 --> 01:23:42.800
 oh Gott,

01:23:42.800 --> 01:23:43.520
 Asche auf mein Haupt.

01:23:43.520 --> 01:23:45.520
 Ich mache das zusammen mit Daniel Vogelheim,

01:23:45.520 --> 01:23:47.760
 der das in Chrome implementiert

01:23:47.760 --> 01:23:48.720
 und für Google arbeitet.

01:23:48.720 --> 01:23:52.920
 Und dritter im Bunde ist Mario Heiderich,

01:23:52.920 --> 01:23:55.300
 der Entwickler von Dom Purify

01:23:55.300 --> 01:23:56.840
 und wie gesagt auch ein guter Freund von mir,

01:23:57.660 --> 01:24:01.000
 der halt auch diverses akademisches Security Research

01:24:01.000 --> 01:24:02.640
 im Rahmen seiner Doktorarbeit gemacht hat

01:24:02.640 --> 01:24:03.620
 zu eben solchen Themen

01:24:03.620 --> 01:24:05.020
 und da einfach

01:24:05.020 --> 01:24:08.780
 einfach extrem wertvoll ist

01:24:08.780 --> 01:24:10.340
 in ganz vielen Designentscheidungen

01:24:10.340 --> 01:24:11.120
 und Abwägungen,

01:24:11.120 --> 01:24:12.320
 weil er halt sagen kann,

01:24:12.320 --> 01:24:14.460
 ja, das haben wir in Dom Purify auch mal überlegt,

01:24:14.460 --> 01:24:15.920
 aber das will bis jetzt keiner.

01:24:16.300 --> 01:24:17.540
 Also machen wir das auch nicht.

01:24:17.540 --> 01:24:19.980
 Und das alleine kann manchmal einfach schon

01:24:19.980 --> 01:24:21.960
 ein extrem hilfreicher Input sein

01:24:21.960 --> 01:24:23.780
 für, wie gestalten wir das.

01:24:23.780 --> 01:24:25.980
 Aber auch wir alle drei,

01:24:25.980 --> 01:24:28.440
 weder ich noch Daniel noch Mario

01:24:28.440 --> 01:24:29.380
 sind Web-Entwickler.

01:24:29.380 --> 01:24:33.900
 Also wir sind da definitiv auf Feedback angewiesen.

01:24:33.900 --> 01:24:35.520
 Das habe ich jetzt, glaube ich, oft genug gesagt.

01:24:35.520 --> 01:24:37.480
 Mario bin ich schon ein paar Mal über den Weg gelaufen.

01:24:37.480 --> 01:24:39.440
 Der wird sich wahrscheinlich nicht erinnern.

01:24:39.440 --> 01:24:41.260
 Ich habe mal einen Konferenzvortrag von ihm gesehen

01:24:41.260 --> 01:24:43.900
 und ich war auch mal auf einem Security Workshop

01:24:43.900 --> 01:24:46.620
 von ihm, den er bei mir in der Firma gemacht hat.

01:24:46.620 --> 01:24:49.200
 Also war mir auf jeden Fall schon ein Begriff vorher.

01:24:49.200 --> 01:24:50.680
 Ja, schön.

01:24:50.680 --> 01:24:53.420
 Ich saß auch schon mal in einem Workshop drin.

01:24:53.420 --> 01:24:54.580
 Ist gut.

01:24:54.580 --> 01:24:56.140
 Ja, der ist wirklich gut.

01:24:56.140 --> 01:24:57.480
 Den kann ich wirklich empfehlen.

01:24:57.480 --> 01:24:58.300
 Ist gut.

01:24:58.300 --> 01:25:00.720
 Danach möchte man eigentlich alles wegwerfen,

01:25:00.720 --> 01:25:01.860
 was man bisher gemacht hat

01:25:01.860 --> 01:25:02.880
 und nochmal neu schreiben,

01:25:02.880 --> 01:25:04.880
 weil man dann so einige Erleuchtungen hatte,

01:25:04.880 --> 01:25:06.260
 wie viele schlimme Dinge man schon

01:25:06.260 --> 01:25:07.560
 in der Vergangenheit produziert hat,

01:25:07.560 --> 01:25:08.740
 die total angreifbar sind.

01:25:08.740 --> 01:25:09.280
 Also es ist,

01:25:09.280 --> 01:25:10.580
 da gibt es auch so,

01:25:10.580 --> 01:25:11.220
 ja, warte mal,

01:25:11.220 --> 01:25:12.740
 das hatten wir, glaube ich, auch schon mal.

01:25:12.740 --> 01:25:13.800
 Da gibt es so ein Game,

01:25:13.900 --> 01:25:16.080
 was man spielen kann im Browser,

01:25:16.080 --> 01:25:18.520
 wo man verschiedene XSSer ausprobieren kann,

01:25:18.520 --> 01:25:19.680
 ob man es brechen kann,

01:25:19.680 --> 01:25:20.180
 ob man reinkommt.

01:25:20.180 --> 01:25:21.820
 Gibt es sehr, sehr viele.

01:25:21.820 --> 01:25:24.140
 Kann ich euch auch welche mitgeben

01:25:24.140 --> 01:25:24.860
 für die Show Notes.

01:25:24.860 --> 01:25:25.780
 Gerne.

01:25:25.780 --> 01:25:26.860
 Ich hoffe, einer von euch

01:25:26.860 --> 01:25:27.760
 macht ein bisschen Notizen.

01:25:27.760 --> 01:25:28.500
 Ich bin mir nicht sicher,

01:25:28.500 --> 01:25:29.620
 ob ich mir das alles merke.

01:25:29.620 --> 01:25:31.740
 Wir machen es parallel nebenher, ja.

01:25:31.740 --> 01:25:32.180
 Danke.

01:25:32.180 --> 01:25:33.200
 Immer, wenn wir komisch

01:25:33.200 --> 01:25:34.320
 auf dem Monitor weggucken,

01:25:34.320 --> 01:25:35.480
 dann sind wir gerade

01:25:35.480 --> 01:25:36.480
 an den Notizen machen.

01:25:36.480 --> 01:25:37.680
 Wunderbar.

01:25:37.680 --> 01:25:38.180
 Genau.

01:25:38.180 --> 01:25:39.640
 Ja, wir hatten es gerade schon

01:25:39.640 --> 01:25:40.820
 über die Browser

01:25:40.820 --> 01:25:42.920
 und ich war auch kurz auf

01:25:42.920 --> 01:25:43.600
 Canary Use,

01:25:43.600 --> 01:25:44.740
 da ist noch alles ziemlich rot.

01:25:44.740 --> 01:25:47.440
 Was hast du denn so für ein Gefühl,

01:25:47.440 --> 01:25:48.700
 wie lange das dann etwa gehen wird?

01:25:48.700 --> 01:25:49.700
 Das ist natürlich immer schwierig,

01:25:49.700 --> 01:25:52.200
 aber was meinst du denn?

01:25:52.200 --> 01:25:52.680
 Ich wusste noch nicht mal,

01:25:52.680 --> 01:25:53.960
 dass wir auf Canary Use sind.

01:25:53.960 --> 01:25:54.460
 Das ist ja der Hammer.

01:25:54.460 --> 01:25:54.860
 Ja, ja, doch.

01:25:54.860 --> 01:25:58.340
 Hut, Hut, ja, alles rot, 0%.

01:25:58.340 --> 01:26:04.100
 Ja, also, ich und Daniel

01:26:04.100 --> 01:26:05.160
 arbeiten aktiv dran,

01:26:05.160 --> 01:26:06.780
 das zu implementieren in,

01:26:06.780 --> 01:26:08.720
 das ist auch so ein Denglish,

01:26:08.720 --> 01:26:10.300
 also wir machen es,

01:26:10.300 --> 01:26:11.860
 wir schreiben es auf

01:26:11.860 --> 01:26:12.760
 in der Spezifikation

01:26:12.760 --> 01:26:13.940
 und wir implementieren es gerade

01:26:13.940 --> 01:26:15.740
 für Gekko und Blink.

01:26:15.740 --> 01:26:17.400
 Das wird definitiv passieren.

01:26:17.400 --> 01:26:19.200
 Ich möchte keine Timeline,

01:26:19.200 --> 01:26:20.440
 keine Versprechen abgeben,

01:26:20.440 --> 01:26:23.760
 aber bald,

01:26:24.460 --> 01:26:26.360
 und über andere Browser

01:26:26.360 --> 01:26:27.700
 kann ich natürlich nichts sagen.

01:26:27.700 --> 01:26:28.640
 Da gibt es halt

01:26:28.640 --> 01:26:30.540
 ein paar offensichtliche

01:26:30.540 --> 01:26:31.340
 Allgemeinplätze,

01:26:31.340 --> 01:26:32.420
 die ich von mir geben kann.

01:26:32.420 --> 01:26:34.360
 Edge und Opera werden es haben,

01:26:34.360 --> 01:26:35.280
 wenn es Chrome auch hat,

01:26:35.280 --> 01:26:36.040
 genauso Brave,

01:26:36.040 --> 01:26:36.780
 weil die halt einfach

01:26:36.780 --> 01:26:37.980
 auch die Blink Engine benutzen.

01:26:37.980 --> 01:26:42.380
 Die Safari-Leute

01:26:42.380 --> 01:26:44.060
 sagen grundsätzlich ja nie was

01:26:44.060 --> 01:26:44.940
 zu solchen Themen,

01:26:44.940 --> 01:26:46.660
 leider auch

01:26:46.660 --> 01:26:48.900
 in Standard-Gremien nicht.

01:26:48.900 --> 01:26:51.940
 Also es gibt ja die W3C-Arbeitsgruppe

01:26:51.940 --> 01:26:53.200
 zur Web-Applikationssicherheit,

01:26:53.540 --> 01:26:54.180
 das ist übrigens auch

01:26:54.180 --> 01:26:54.780
 alles öffentlich

01:26:54.780 --> 01:26:57.700
 und da haben die nur gesagt,

01:26:57.700 --> 01:27:00.100
 wir finden das grundsätzlich

01:27:00.100 --> 01:27:00.580
 interessant,

01:27:00.580 --> 01:27:01.520
 aber das heißt halt

01:27:01.520 --> 01:27:02.940
 einfach nichts.

01:27:02.940 --> 01:27:04.840
 Und da werden wir halt

01:27:04.840 --> 01:27:05.300
 einfach sehen.

01:27:05.300 --> 01:27:07.940
 Was ich tatsächlich auch mache,

01:27:07.940 --> 01:27:09.240
 ein bisschen für Spaß

01:27:09.240 --> 01:27:10.660
 und weil ich da so ein

01:27:10.660 --> 01:27:13.600
 Junior-Engineer,

01:27:13.600 --> 01:27:14.300
 der mir mehr oder weniger

01:27:14.300 --> 01:27:15.160
 über den Weg gelaufen ist

01:27:15.160 --> 01:27:15.840
 und für eine ganz andere

01:27:15.840 --> 01:27:16.500
 Firma arbeitet,

01:27:16.500 --> 01:27:17.520
 der hat gesagt,

01:27:17.520 --> 01:27:18.380
 kannst du mich da mentoren,

01:27:18.380 --> 01:27:19.020
 ich möchte ein bisschen

01:27:19.020 --> 01:27:19.960
 Browsersicherheit lernen,

01:27:20.700 --> 01:27:23.000
 gibt es ein Sanitizer-API-Polyfill,

01:27:23.000 --> 01:27:23.920
 an dem wir arbeiten.

01:27:23.920 --> 01:27:26.100
 Und wie an der Stelle ist,

01:27:26.100 --> 01:27:27.040
 ich mache so ein bisschen

01:27:27.040 --> 01:27:27.560
 Mentoring

01:27:27.560 --> 01:27:28.460
 und erkläre das Beck

01:27:28.460 --> 01:27:30.260
 und dieser junge,

01:27:30.260 --> 01:27:31.100
 talentierte Junge

01:27:31.100 --> 01:27:31.760
 namens Edward,

01:27:31.760 --> 01:27:33.060
 der glaube ich,

01:27:33.060 --> 01:27:33.980
 in Kalifornien lebt,

01:27:33.980 --> 01:27:36.240
 macht größtenteils den Rest,

01:27:36.240 --> 01:27:37.380
 aber die Idee ist,

01:27:37.380 --> 01:27:37.980
 dass es halt auch

01:27:37.980 --> 01:27:39.200
 ein Polyfill geben soll,

01:27:39.200 --> 01:27:41.160
 der sich so anfühlt

01:27:41.160 --> 01:27:42.400
 wie die Sanitizer-API,

01:27:42.400 --> 01:27:45.020
 aber eben das nicht

01:27:45.020 --> 01:27:46.040
 komplett im Browser macht,

01:27:46.140 --> 01:27:46.580
 sondern natürlich

01:27:46.580 --> 01:27:47.400
 so ein paar Abstriche,

01:27:47.400 --> 01:27:48.160
 was Performance

01:27:48.160 --> 01:27:49.000
 und ein paar Abstriche,

01:27:49.000 --> 01:27:50.040
 was Security angeht.

01:27:50.040 --> 01:27:52.220
 Das ist auf jeden Fall praktisch,

01:27:52.220 --> 01:27:52.800
 dann kann man nämlich

01:27:52.800 --> 01:27:53.680
 quasi schon direkt

01:27:53.680 --> 01:27:54.520
 damit loslegen,

01:27:54.520 --> 01:27:55.420
 sobald es den gibt

01:27:55.420 --> 01:27:55.880
 und dann,

01:27:55.880 --> 01:27:57.260
 der wird ja dann

01:27:57.260 --> 01:27:58.220
 wahrscheinlich so gebaut sein,

01:27:58.220 --> 01:28:00.120
 dass falls der Browser

01:28:00.120 --> 01:28:01.580
 die Sanitizer-API hat,

01:28:01.580 --> 01:28:03.040
 dass er dann nichts macht.

01:28:03.040 --> 01:28:05.660
 Wie sich das für ein Polyfill gehört,

01:28:05.660 --> 01:28:06.480
 was ich auch übrigens

01:28:06.480 --> 01:28:07.340
 neu lernen musste,

01:28:07.340 --> 01:28:09.100
 aber man kann ja eben

01:28:09.100 --> 01:28:10.720
 if type of Sanitizer

01:28:10.720 --> 01:28:12.260
 equals und defined

01:28:12.260 --> 01:28:12.880
 oder so ähnlich

01:28:12.880 --> 01:28:13.340
 und dann

01:28:13.340 --> 01:28:15.500
 ratterst du deinen Code runter

01:28:15.500 --> 01:28:15.860
 oder so.

01:28:15.860 --> 01:28:16.260
 Genau,

01:28:16.260 --> 01:28:17.400
 das XS-Game,

01:28:17.400 --> 01:28:18.080
 was ich meinte,

01:28:18.080 --> 01:28:19.260
 was ich meinte jetzt tatsächlich,

01:28:19.260 --> 01:28:20.680
 da war das Prompt,

01:28:20.680 --> 01:28:22.520
 Prompt One to Win

01:28:22.520 --> 01:28:24.220
 von Q53,

01:28:24.220 --> 01:28:25.300
 glaube ich,

01:28:25.300 --> 01:28:26.540
 Prompt ML.

01:28:26.540 --> 01:28:28.960
 Der Link kommt in die Show Notes.

01:28:28.960 --> 01:28:29.780
 Das ist ganz witzig,

01:28:29.780 --> 01:28:30.820
 das steigert sich

01:28:30.820 --> 01:28:31.800
 von Level zu Level.

01:28:31.800 --> 01:28:32.620
 Es ist am Anfang

01:28:32.620 --> 01:28:33.260
 ganz easy,

01:28:33.260 --> 01:28:34.320
 da auszubrechen.

01:28:34.320 --> 01:28:35.120
 Man hat den Code

01:28:35.120 --> 01:28:36.980
 in JavaScript schon stehen

01:28:36.980 --> 01:28:38.620
 und aus dem man ausbrechen muss

01:28:38.620 --> 01:28:40.980
 und es wird aber schon

01:28:40.980 --> 01:28:42.080
 relativ schnell knackig

01:28:42.080 --> 01:28:43.200
 und interessant.

01:28:43.200 --> 01:28:43.840
 Da muss man dann

01:28:43.840 --> 01:28:44.820
 schon ein paar Tricks drauf haben.

01:28:45.500 --> 01:28:47.120
 Genau.

01:28:47.120 --> 01:28:47.880
 Ah, witzig.

01:28:47.880 --> 01:28:49.380
 Es gibt auch

01:28:49.380 --> 01:28:50.400
 Alert One to Win.

01:28:50.400 --> 01:28:53.600
 Das ist unter

01:28:53.600 --> 01:28:55.940
 sk.alf.nu

01:28:55.940 --> 01:28:58.180
 Ja, ich glaube,

01:28:58.180 --> 01:28:58.800
 da hast du das letzte

01:28:58.800 --> 01:28:59.640
 Woche noch nicht gesprochen.

01:28:59.640 --> 01:29:02.920
 Aber ja,

01:29:02.920 --> 01:29:03.300
 mal gucken.

01:29:03.300 --> 01:29:04.840
 Gut,

01:29:04.840 --> 01:29:06.080
 jetzt habe ich mir hier noch notiert,

01:29:06.080 --> 01:29:06.920
 Follow-up,

01:29:06.920 --> 01:29:07.860
 die Bedingungen für

01:29:07.860 --> 01:29:08.680
 XSS-Sicherheit

01:29:08.680 --> 01:29:09.620
 mit den Default-Werten

01:29:09.620 --> 01:29:10.760
 der Options.

01:29:11.080 --> 01:29:12.080
 Ja, sehr schön.

01:29:12.080 --> 01:29:12.980
 Ja, sehr schön.

01:29:12.980 --> 01:29:14.760
 Genau, da wollten wir noch zukommen.

01:29:14.760 --> 01:29:17.060
 Und zwar gibt es,

01:29:17.060 --> 01:29:17.920
 und jetzt muss ich auch wieder

01:29:17.920 --> 01:29:19.500
 so ein bisschen ausholen,

01:29:19.500 --> 01:29:23.060
 bestimmte Angriffe,

01:29:23.060 --> 01:29:25.160
 die halt sich nicht wirklich

01:29:25.160 --> 01:29:27.220
 auf deine Web-Anwendung

01:29:27.220 --> 01:29:28.080
 beziehen im Rahmen

01:29:28.080 --> 01:29:28.960
 Crossout Scripting

01:29:28.960 --> 01:29:30.140
 und sich vielleicht auch nicht

01:29:30.140 --> 01:29:31.660
 direkt auf den Code,

01:29:31.660 --> 01:29:32.480
 den du geschrieben hast,

01:29:32.480 --> 01:29:32.900
 beziehen,

01:29:32.900 --> 01:29:34.140
 sondern vielleicht auf das

01:29:34.140 --> 01:29:34.780
 Framework.

01:29:34.780 --> 01:29:36.620
 Und jetzt kommt halt der

01:29:36.620 --> 01:29:39.220
 der Gag im weitesten Sinne.

01:29:39.220 --> 01:29:41.480
 Ich fange mal an mit,

01:29:41.480 --> 01:29:43.740
 es gibt tatsächlich

01:29:43.740 --> 01:29:45.420
 drei,

01:29:45.420 --> 01:29:47.500
 drei Sternchen.

01:29:47.500 --> 01:29:48.720
 Erstens,

01:29:48.720 --> 01:29:50.860
 ein Angriff mit dem Namen

01:29:50.860 --> 01:29:52.500
 Script Gadgets

01:29:52.500 --> 01:29:54.320
 und das ist ein relativ

01:29:54.320 --> 01:29:55.320
 cooler Research

01:29:55.320 --> 01:29:57.440
 von dem Google Web Security Team,

01:29:57.440 --> 01:29:58.820
 die Security machen

01:29:58.820 --> 01:29:59.740
 für Google.com

01:29:59.740 --> 01:30:00.520
 und alle möglichen

01:30:00.520 --> 01:30:01.240
 Google Webseiten.

01:30:01.240 --> 01:30:03.540
 Und die haben gesagt,

01:30:03.540 --> 01:30:05.460
 was wäre,

01:30:06.620 --> 01:30:08.280
 wenn eine Webseite

01:30:08.280 --> 01:30:09.240
 einen coolen

01:30:09.240 --> 01:30:11.180
 Security Mechanismus hat

01:30:11.180 --> 01:30:13.780
 und ein Crossout Scripting.

01:30:13.780 --> 01:30:14.920
 Also beides.

01:30:14.920 --> 01:30:16.120
 Wir gehen davon aus,

01:30:16.120 --> 01:30:17.560
 die Webseite hat eine Schwachstelle,

01:30:17.560 --> 01:30:18.660
 was wie ich finde

01:30:18.660 --> 01:30:20.520
 eine relativ okaye Annahme ist,

01:30:20.520 --> 01:30:21.380
 weil wenn eine Webseite

01:30:21.380 --> 01:30:21.760
 groß ist,

01:30:21.760 --> 01:30:22.360
 dann hat die halt mal

01:30:22.360 --> 01:30:22.860
 eine Schwachstelle.

01:30:22.860 --> 01:30:23.580
 So ist es leider.

01:30:23.580 --> 01:30:25.740
 Und wir gehen davon aus,

01:30:25.740 --> 01:30:26.740
 die hat einen Sicherheitsmechanismus

01:30:26.740 --> 01:30:27.320
 und dann haben die

01:30:27.320 --> 01:30:28.500
 verschiedene Sicherheitsmechanismen

01:30:28.500 --> 01:30:30.660
 durchgecheckt.

01:30:30.660 --> 01:30:31.440
 Zum Beispiel

01:30:31.440 --> 01:30:32.360
 DOM Purify,

01:30:32.360 --> 01:30:34.620
 eine relativ starke

01:30:34.620 --> 01:30:36.220
 Content Security Policy,

01:30:36.620 --> 01:30:38.320
 und ich glaube auch noch

01:30:38.320 --> 01:30:38.800
 was Drittes,

01:30:38.800 --> 01:30:39.780
 aber es fällt mir nicht ein.

01:30:39.780 --> 01:30:41.620
 Und jetzt kommt der Gag.

01:30:41.620 --> 01:30:44.240
 Die haben eine Testmatrix gebaut

01:30:44.240 --> 01:30:45.460
 in Verbindung mit

01:30:45.460 --> 01:30:46.480
 bestimmten Frameworks.

01:30:46.480 --> 01:30:50.640
 Also Bootstrap und CSP

01:30:50.640 --> 01:30:53.560
 oder Bootstrap und DOM Purify,

01:30:53.560 --> 01:30:55.860
 React und CSP,

01:30:55.860 --> 01:30:57.760
 React und DOM Purify

01:30:57.760 --> 01:30:58.380
 und dann noch so ein paar

01:30:58.380 --> 01:30:59.100
 andere Frameworks.

01:30:59.100 --> 01:31:00.840
 Und die haben halt gemerkt,

01:31:01.720 --> 01:31:03.260
 dass man relativ witzige Sachen

01:31:03.260 --> 01:31:03.820
 machen kann,

01:31:03.820 --> 01:31:05.900
 weil halt CSP

01:31:05.900 --> 01:31:07.040
 und DOM Purify

01:31:07.040 --> 01:31:08.440
 auf HTML reagieren,

01:31:08.440 --> 01:31:09.600
 aber nicht auf

01:31:09.600 --> 01:31:10.920
 Bootstrap-Markup.

01:31:10.920 --> 01:31:12.300
 Das heißt,

01:31:12.300 --> 01:31:13.920
 ein relativ schönes

01:31:13.920 --> 01:31:14.720
 Beispiel ist,

01:31:14.720 --> 01:31:19.260
 dass Bootstrap-Buttons

01:31:19.260 --> 01:31:20.400
 aus bestimmten Gründen

01:31:20.400 --> 01:31:21.760
 ihren Text haben

01:31:21.760 --> 01:31:22.320
 über

01:31:22.320 --> 01:31:24.200
 ein Data-Attribute.

01:31:24.200 --> 01:31:24.540
 Ich glaube,

01:31:24.540 --> 01:31:25.560
 du machst ein Button

01:31:25.560 --> 01:31:26.180
 auf,

01:31:26.180 --> 01:31:27.240
 und das ist jetzt ein bisschen

01:31:27.240 --> 01:31:27.980
 älteres Research,

01:31:27.980 --> 01:31:28.840
 das ist in der neuesten

01:31:28.840 --> 01:31:29.560
 Bootstrap-Version

01:31:29.560 --> 01:31:30.360
 vielleicht anders.

01:31:30.360 --> 01:31:32.880
 Du machst ein Button-Element

01:31:32.880 --> 01:31:33.860
 auf und hast da drin

01:31:33.860 --> 01:31:35.060
 ein Attribut namens

01:31:35.060 --> 01:31:39.420
 data-text, glaube ich,

01:31:39.420 --> 01:31:41.240
 und da ist der Text drin

01:31:41.240 --> 01:31:42.560
 und dann machst du

01:31:42.560 --> 01:31:43.200
 das Button-Element

01:31:43.200 --> 01:31:43.700
 wieder zu

01:31:43.700 --> 01:31:44.820
 und Bootstrap

01:31:44.820 --> 01:31:45.760
 zeigt dir das als

01:31:45.760 --> 01:31:46.680
 schönen Bootstrap-Button

01:31:46.680 --> 01:31:47.280
 an, was auch immer.

01:31:47.280 --> 01:31:49.740
 Und dann gibt es noch

01:31:49.740 --> 01:31:50.020
 ein,

01:31:50.020 --> 01:31:51.600
 genau,

01:31:51.600 --> 01:31:52.620
 und was Bootstrap

01:31:52.620 --> 01:31:54.240
 under the hood macht,

01:31:54.240 --> 01:31:54.960
 ist,

01:31:54.960 --> 01:31:55.580
 die nehmen das,

01:31:55.580 --> 01:31:56.240
 was in dem

01:31:56.240 --> 01:31:57.800
 Data-Attribut drin ist

01:31:57.800 --> 01:31:59.060
 und machen

01:31:59.060 --> 01:31:59.760
 inner-HTML.

01:31:59.760 --> 01:32:01.180
 Also das ist im

01:32:01.180 --> 01:32:01.940
 aktuellen Bootstrap

01:32:01.940 --> 01:32:02.380
 auf jeden Fall

01:32:02.380 --> 01:32:02.800
 nicht mehr so,

01:32:02.800 --> 01:32:04.100
 aber kann mit Sicherheit

01:32:04.100 --> 01:32:04.360
 sein,

01:32:04.360 --> 01:32:05.080
 dass das mal so war,

01:32:05.080 --> 01:32:05.220
 ja.

01:32:05.220 --> 01:32:05.840
 Ich glaube,

01:32:05.840 --> 01:32:06.920
 mittlerweile musst du

01:32:06.920 --> 01:32:08.760
 irgendwie data-HTML

01:32:08.760 --> 01:32:09.400
 gleich true

01:32:09.400 --> 01:32:10.280
 auch noch als Attribut

01:32:10.280 --> 01:32:10.620
 setzen

01:32:10.620 --> 01:32:11.440
 und ich glaube,

01:32:11.440 --> 01:32:12.140
 dann geht das noch.

01:32:12.140 --> 01:32:12.960
 Das kann sein,

01:32:12.960 --> 01:32:13.120
 ja.

01:32:13.120 --> 01:32:14.320
 Nie gemacht.

01:32:14.320 --> 01:32:15.340
 So,

01:32:15.340 --> 01:32:16.960
 und wenn du halt sagst,

01:32:16.960 --> 01:32:18.100
 hier ist mein harmloses

01:32:18.100 --> 01:32:18.560
 HTML

01:32:18.560 --> 01:32:19.860
 und dann guckt sich

01:32:19.860 --> 01:32:21.240
 irgendjemand das an

01:32:21.240 --> 01:32:21.460
 und sagt,

01:32:21.460 --> 01:32:21.640
 ja,

01:32:21.640 --> 01:32:22.400
 Data-Attributes,

01:32:22.400 --> 01:32:23.320
 die haben ja keine Bedeutung,

01:32:23.320 --> 01:32:24.380
 die haben ja keine Semantik,

01:32:24.380 --> 01:32:25.040
 per Definition,

01:32:25.040 --> 01:32:26.300
 kann ich ja drin lassen,

01:32:27.260 --> 01:32:28.440
 dann ist halt alles im Eimer,

01:32:28.440 --> 01:32:28.660
 ne.

01:32:28.660 --> 01:32:29.880
 Das heißt,

01:32:29.880 --> 01:32:31.900
 und deswegen haben die

01:32:31.900 --> 01:32:32.780
 das Script-Gadgets

01:32:32.780 --> 01:32:33.120
 genannt,

01:32:33.120 --> 01:32:33.960
 die haben sich

01:32:33.960 --> 01:32:35.120
 kleine,

01:32:35.120 --> 01:32:35.960
 ja,

01:32:35.960 --> 01:32:36.660
 kleine Gadgets,

01:32:36.660 --> 01:32:37.820
 kleine Werkzeuge

01:32:37.820 --> 01:32:38.320
 rausgesucht

01:32:38.320 --> 01:32:39.440
 in bestimmten Frameworks,

01:32:39.440 --> 01:32:40.840
 die es denen erlauben,

01:32:40.840 --> 01:32:41.720
 etwas zu tun,

01:32:41.720 --> 01:32:42.780
 was der,

01:32:42.780 --> 01:32:44.180
 was der gute

01:32:44.180 --> 01:32:45.900
 Web-Entwickler

01:32:45.900 --> 01:32:47.000
 vielleicht nicht tun würde

01:32:47.000 --> 01:32:48.980
 und haben die halt benutzt,

01:32:48.980 --> 01:32:50.000
 um durch die Hintertür

01:32:50.000 --> 01:32:50.740
 Crossout-Scripting

01:32:50.740 --> 01:32:51.300
 auszuführen.

01:32:51.300 --> 01:32:52.500
 Selbst,

01:32:52.500 --> 01:32:54.900
 selbst wenn du sagst,

01:32:54.900 --> 01:32:55.820
 ich passe auf mein HTML

01:32:55.820 --> 01:32:56.540
 eigentlich auf

01:32:56.540 --> 01:32:58.000
 und weil halt das,

01:32:58.000 --> 01:32:59.640
 das Script,

01:32:59.640 --> 01:33:00.460
 was die injecten,

01:33:00.460 --> 01:33:01.420
 ist halt nicht wirklich

01:33:01.420 --> 01:33:02.040
 ein Script,

01:33:02.040 --> 01:33:03.380
 sondern es ist

01:33:03.380 --> 01:33:04.740
 Bootstrap-Markup

01:33:04.740 --> 01:33:05.860
 und das Script,

01:33:05.860 --> 01:33:06.460
 was dann eigentlich

01:33:06.460 --> 01:33:07.340
 ausgeführt wird

01:33:07.340 --> 01:33:08.360
 auf deiner Webseite,

01:33:08.360 --> 01:33:09.960
 ist halt Bootstrap.

01:33:09.960 --> 01:33:11.400
 Das ist halt erlaubt.

01:33:11.400 --> 01:33:13.960
 und deswegen kannst du dich

01:33:13.960 --> 01:33:15.000
 dagegen nicht so richtig

01:33:15.000 --> 01:33:16.200
 gut absichern.

01:33:16.200 --> 01:33:17.400
 Das heißt,

01:33:17.400 --> 01:33:18.840
 das ist ein bisschen

01:33:18.840 --> 01:33:19.600
 ein Problem für die

01:33:19.600 --> 01:33:20.600
 Sanitizer-API,

01:33:20.600 --> 01:33:22.040
 dass wir halt eine

01:33:22.040 --> 01:33:23.140
 bestimmte Interpretation

01:33:23.140 --> 01:33:23.620
 haben von,

01:33:23.620 --> 01:33:25.100
 was ist böse

01:33:25.100 --> 01:33:26.260
 im Kontext von HTML

01:33:26.260 --> 01:33:28.260
 und deine Web-Anwendung

01:33:28.260 --> 01:33:29.700
 vielleicht ein ganz anderes

01:33:29.700 --> 01:33:30.820
 Verständnis davon hat.

01:33:30.820 --> 01:33:32.060
 Das heißt,

01:33:32.060 --> 01:33:33.040
 wenn du ein Framework

01:33:33.040 --> 01:33:33.380
 benutzt,

01:33:33.380 --> 01:33:34.700
 was relativ dick ist,

01:33:34.700 --> 01:33:36.040
 dann musst du dir

01:33:36.040 --> 01:33:36.700
 leider angucken,

01:33:36.700 --> 01:33:37.820
 was dieses Framework

01:33:37.820 --> 01:33:39.640
 kann und was du davon

01:33:39.640 --> 01:33:41.160
 explizit erlauben willst

01:33:41.160 --> 01:33:41.980
 oder halt nicht

01:33:41.980 --> 01:33:43.640
 und das ist ein bisschen

01:33:43.640 --> 01:33:44.280
 schwierig

01:33:44.280 --> 01:33:46.220
 und

01:33:46.220 --> 01:33:48.620
 was wir hoffen

01:33:48.620 --> 01:33:50.120
 langfristig

01:33:50.120 --> 01:33:50.680
 ist,

01:33:50.680 --> 01:33:51.200
 dass die

01:33:51.200 --> 01:33:52.600
 coolen Frameworks

01:33:52.600 --> 01:33:53.620
 und damit erzeuge

01:33:53.620 --> 01:33:54.420
 ich jetzt den Druck,

01:33:54.420 --> 01:33:56.240
 dass die tatsächlich

01:33:56.240 --> 01:33:57.900
 dir eine Anleitung geben

01:33:57.900 --> 01:33:59.080
 oder noch noch cooler

01:33:59.080 --> 01:34:00.140
 irgendwo einen

01:34:00.140 --> 01:34:01.160
 Global Sanitizer

01:34:01.160 --> 01:34:01.920
 rumliegen haben,

01:34:01.920 --> 01:34:02.420
 den du einfach

01:34:02.420 --> 01:34:03.320
 benutzen kannst.

01:34:03.320 --> 01:34:05.520
 Also das Coolste wäre,

01:34:05.520 --> 01:34:06.060
 wenn du

01:34:06.060 --> 01:34:07.320
 innerhalb irgendeinem

01:34:07.320 --> 01:34:07.920
 Framework

01:34:07.920 --> 01:34:09.460
 Code schreibst

01:34:09.460 --> 01:34:10.940
 und immer,

01:34:11.040 --> 01:34:11.780
 wenn du einen Sanitizer

01:34:11.780 --> 01:34:12.220
 brauchst,

01:34:12.220 --> 01:34:14.060
 liegt der halt irgendwo rum

01:34:14.060 --> 01:34:15.960
 als hinter einer Funktion

01:34:15.960 --> 01:34:16.800
 aus dem Framework

01:34:16.800 --> 01:34:18.080
 oder als globale Variable

01:34:18.080 --> 01:34:18.680
 oder was auch immer

01:34:18.680 --> 01:34:19.620
 gerade sexy ist.

01:34:19.620 --> 01:34:20.560
 Oder wird vielleicht

01:34:20.560 --> 01:34:21.760
 sogar automatisch verwendet,

01:34:21.760 --> 01:34:21.900
 ne?

01:34:21.900 --> 01:34:23.860
 Und du benutzt genau den.

01:34:23.860 --> 01:34:25.140
 Ja, oder genau,

01:34:25.140 --> 01:34:25.760
 oder du kannst ihn

01:34:25.760 --> 01:34:26.780
 automatisch verwenden

01:34:26.780 --> 01:34:28.760
 oder du kannst vielleicht,

01:34:28.760 --> 01:34:29.860
 du kriegst einen

01:34:29.860 --> 01:34:30.400
 übergeben,

01:34:30.400 --> 01:34:30.880
 kannst,

01:34:30.880 --> 01:34:31.880
 das habe ich glaube ich

01:34:31.880 --> 01:34:32.300
 nicht erzählt,

01:34:32.300 --> 01:34:33.440
 aber das Sanitizer Objekt

01:34:33.440 --> 01:34:33.980
 hat auch

01:34:33.980 --> 01:34:35.860
 eine GetConfig-Funktion.

01:34:35.860 --> 01:34:36.620
 Du kannst dir aus dem

01:34:36.620 --> 01:34:37.540
 Sanitizer rausgucken,

01:34:37.600 --> 01:34:38.480
 was erlaubt der gerade.

01:34:38.480 --> 01:34:40.020
 Dass du halt vom Framework

01:34:40.020 --> 01:34:41.100
 einen Sanitizer kriegst,

01:34:41.100 --> 01:34:42.360
 dir die Config anguckst

01:34:42.360 --> 01:34:42.720
 und sagst,

01:34:42.720 --> 01:34:43.520
 okay,

01:34:43.520 --> 01:34:44.960
 die übernehme ich als Baseline

01:34:44.960 --> 01:34:46.020
 und dann werfe ich

01:34:46.020 --> 01:34:46.840
 noch mehr raus

01:34:46.840 --> 01:34:47.420
 zum Beispiel.

01:34:47.420 --> 01:34:49.800
 Dass du halt irgendwie

01:34:49.800 --> 01:34:51.200
 bewusst

01:34:51.200 --> 01:34:52.320
 und gezielt

01:34:52.320 --> 01:34:53.200
 interagieren kannst

01:34:53.200 --> 01:34:54.080
 mit einem Sanitizer,

01:34:54.080 --> 01:34:55.100
 den dir das Framework gibt.

01:34:55.100 --> 01:34:56.160
 Das wäre halt irgendwie

01:34:56.160 --> 01:34:56.660
 ganz geil.

01:34:56.660 --> 01:34:57.280
 Ja klar,

01:34:57.280 --> 01:34:58.280
 oder im besten Fall

01:34:58.280 --> 01:34:59.200
 benutzt das Framework

01:34:59.200 --> 01:35:00.080
 einfach einen Sanitizer,

01:35:00.080 --> 01:35:01.060
 der ordentlich konfiguriert

01:35:01.060 --> 01:35:01.840
 ist für das Framework

01:35:01.840 --> 01:35:02.460
 und dann bist du

01:35:02.460 --> 01:35:03.860
 komplett raus.

01:35:03.860 --> 01:35:04.160
 Genau.

01:35:04.160 --> 01:35:05.580
 Das ist so ein bisschen

01:35:05.580 --> 01:35:06.160
 eine Hoffnung.

01:35:06.160 --> 01:35:08.500
 Dann gibt es

01:35:08.500 --> 01:35:09.720
 noch einen anderen Angriff,

01:35:09.720 --> 01:35:10.660
 den ich vorstellen müsste,

01:35:10.660 --> 01:35:11.320
 um zu erklären,

01:35:11.320 --> 01:35:13.100
 warum das der Sanitizer

01:35:13.100 --> 01:35:13.880
 nicht tun kann.

01:35:13.880 --> 01:35:16.580
 Und der ist relativ alt

01:35:16.580 --> 01:35:17.840
 und ich finde relativ

01:35:17.840 --> 01:35:18.620
 obskur,

01:35:18.620 --> 01:35:19.620
 aber auch relativ geil.

01:35:19.620 --> 01:35:20.660
 Das heißt

01:35:20.660 --> 01:35:21.780
 DOM Clobbering.

01:35:21.780 --> 01:35:22.160
 Ich weiß nicht,

01:35:22.160 --> 01:35:23.400
 ob ihr davon mal gehört habt.

01:35:23.400 --> 01:35:24.920
 Und zwar

01:35:24.920 --> 01:35:26.600
 wisst ihr ja vielleicht,

01:35:26.600 --> 01:35:27.240
 dass wenn du einem

01:35:27.240 --> 01:35:28.120
 HTML-Element

01:35:28.120 --> 01:35:29.240
 eine ID gibst,

01:35:30.160 --> 01:35:31.560
 dass die gleichzeitig

01:35:31.560 --> 01:35:32.880
 auch automatisch

01:35:32.880 --> 01:35:34.120
 als globale Variable

01:35:34.120 --> 01:35:35.420
 in JavaScript existiert.

01:35:35.420 --> 01:35:36.740
 So.

01:35:36.740 --> 01:35:38.300
 Das heißt

01:35:38.300 --> 01:35:42.760
 und jetzt wird es

01:35:42.760 --> 01:35:43.100
 noch ein bisschen

01:35:43.100 --> 01:35:43.700
 abgefahren.

01:35:43.700 --> 01:35:47.460
 Das gleiche gilt

01:35:47.460 --> 01:35:48.980
 für bestimmte Elemente,

01:35:48.980 --> 01:35:49.580
 ich glaube aber nicht

01:35:49.580 --> 01:35:49.960
 für alle.

01:35:49.960 --> 01:35:51.600
 Ich glaube für Formulare

01:35:51.600 --> 01:35:52.180
 und

01:35:52.180 --> 01:35:55.200
 und ich glaube

01:35:55.200 --> 01:35:56.200
 auch Hyperlinks,

01:35:56.200 --> 01:35:56.600
 bin ich sicher,

01:35:56.600 --> 01:35:57.620
 ist es auch beim

01:35:57.620 --> 01:35:58.800
 Name-Attribute so,

01:35:58.800 --> 01:36:00.100
 dass das einen globalen Namen

01:36:00.100 --> 01:36:00.520
 setzt.

01:36:00.520 --> 01:36:02.040
 Ich glaube bei Formularen

01:36:02.040 --> 01:36:02.580
 ist das so.

01:36:02.580 --> 01:36:04.620
 Und

01:36:04.620 --> 01:36:06.560
 was du zum Beispiel

01:36:06.560 --> 01:36:07.460
 machen kannst,

01:36:07.460 --> 01:36:08.760
 ist du kannst

01:36:08.760 --> 01:36:09.680
 naja nicht direkt

01:36:09.680 --> 01:36:10.740
 Variablen überschreiben,

01:36:10.740 --> 01:36:12.100
 die es im JavaScript gibt,

01:36:12.100 --> 01:36:13.260
 aber du kannst

01:36:13.260 --> 01:36:14.160
 je nachdem wie das

01:36:14.160 --> 01:36:15.180
 JavaScript geschrieben ist,

01:36:15.180 --> 01:36:16.100
 kannst du es verwirren,

01:36:16.100 --> 01:36:17.080
 indem es irgendwelche

01:36:17.080 --> 01:36:17.900
 Dinge aufruft

01:36:17.900 --> 01:36:19.300
 und denkt,

01:36:19.300 --> 01:36:20.360
 oh das ist ja schon gesetzt.

01:36:20.360 --> 01:36:20.940
 Also wenn du so

01:36:20.940 --> 01:36:21.460
 Code hast,

01:36:21.460 --> 01:36:21.820
 ist

01:36:21.820 --> 01:36:25.560
 Fubar ist gleich

01:36:25.560 --> 01:36:26.200
 Default

01:36:26.200 --> 01:36:26.800
 Fubar

01:36:26.800 --> 01:36:27.880
 oder

01:36:27.880 --> 01:36:28.280
 oder

01:36:28.280 --> 01:36:29.000
 und dann

01:36:29.000 --> 01:36:29.620
 anderer Wert

01:36:29.620 --> 01:36:31.020
 und dieses

01:36:31.020 --> 01:36:31.420
 Default

01:36:31.420 --> 01:36:32.060
 Fubar ist halt

01:36:32.060 --> 01:36:32.640
 eigentlich gar keine

01:36:32.640 --> 01:36:33.100
 Variable,

01:36:33.100 --> 01:36:33.760
 sondern ein Element,

01:36:33.760 --> 01:36:34.400
 was ein Entwickler,

01:36:34.400 --> 01:36:35.360
 was ein Angreifer

01:36:35.360 --> 01:36:36.060
 eingeschleust hat.

01:36:36.060 --> 01:36:39.240
 Damit kann man halt

01:36:39.240 --> 01:36:40.200
 Webseiten

01:36:40.200 --> 01:36:40.780
 angreifen

01:36:40.780 --> 01:36:42.500
 und ein relativ

01:36:42.500 --> 01:36:43.240
 cooles Ding ist,

01:36:43.240 --> 01:36:44.160
 wenn du ein Formular

01:36:44.160 --> 01:36:45.360
 baust und dem,

01:36:45.360 --> 01:36:45.800
 und da bin ich mir

01:36:45.800 --> 01:36:46.040
 sicher,

01:36:46.120 --> 01:36:46.460
 die ID

01:36:46.460 --> 01:36:47.140
 oder den Namen

01:36:47.140 --> 01:36:47.640
 gibst,

01:36:47.640 --> 01:36:49.160
 ich sag mal wieder

01:36:49.160 --> 01:36:49.620
 Fubar

01:36:49.620 --> 01:36:51.320
 und dann

01:36:51.320 --> 01:36:52.000
 darunter

01:36:52.000 --> 01:36:55.660
 Radio

01:36:55.660 --> 01:36:56.580
 Input Elemente

01:36:56.580 --> 01:36:56.880
 hast

01:36:56.880 --> 01:36:57.920
 und denen

01:36:57.920 --> 01:36:58.720
 alle den Namen

01:36:58.720 --> 01:36:59.200
 gibst

01:36:59.200 --> 01:36:59.880
 Children,

01:36:59.880 --> 01:37:02.100
 dann hast du

01:37:02.100 --> 01:37:03.380
 dann hast du

01:37:03.380 --> 01:37:03.900
 tatsächlich,

01:37:03.900 --> 01:37:04.620
 wenn du

01:37:04.620 --> 01:37:05.740
 Fubar.children

01:37:05.740 --> 01:37:06.220
 machst,

01:37:06.220 --> 01:37:07.380
 nicht mehr die

01:37:07.380 --> 01:37:08.380
 HTML Elemente,

01:37:08.380 --> 01:37:09.120
 die die wirklichen

01:37:09.120 --> 01:37:09.700
 Kinder sind,

01:37:09.700 --> 01:37:10.960
 sondern du iterierst

01:37:10.960 --> 01:37:12.240
 nur durch die

01:37:12.240 --> 01:37:13.000
 Radio Elemente

01:37:13.000 --> 01:37:13.300
 durch.

01:37:13.300 --> 01:37:14.180
 Ach krass,

01:37:14.180 --> 01:37:15.060
 sehr gut.

01:37:15.060 --> 01:37:15.740
 Und das ist halt

01:37:15.740 --> 01:37:17.020
 ärgerlich.

01:37:17.020 --> 01:37:19.360
 Und ich

01:37:19.360 --> 01:37:20.940
 glaube nicht,

01:37:20.940 --> 01:37:21.960
 dass es tatsächlich

01:37:21.960 --> 01:37:23.580
 eine ausführliche

01:37:23.580 --> 01:37:24.180
 Liste gibt,

01:37:24.180 --> 01:37:25.480
 die bei allen

01:37:25.480 --> 01:37:26.740
 Browsern exakt

01:37:26.740 --> 01:37:27.580
 gleich ist,

01:37:27.580 --> 01:37:28.680
 bei welchen

01:37:28.680 --> 01:37:29.540
 Elementen,

01:37:29.540 --> 01:37:31.580
 welche

01:37:31.580 --> 01:37:32.020
 ID,

01:37:32.020 --> 01:37:32.700
 Namen,

01:37:32.700 --> 01:37:33.160
 etc.

01:37:33.160 --> 01:37:34.100
 Kombinationen

01:37:34.100 --> 01:37:34.840
 was genau

01:37:34.840 --> 01:37:35.680
 bedeuten und

01:37:35.680 --> 01:37:36.160
 welche

01:37:36.160 --> 01:37:37.340
 tatsächlichen

01:37:37.340 --> 01:37:37.880
 echten

01:37:37.880 --> 01:37:38.680
 Attribute

01:37:38.680 --> 01:37:39.000
 an einem

01:37:39.000 --> 01:37:39.660
 HTML Element

01:37:39.660 --> 01:37:40.340
 sich überschreiben

01:37:40.340 --> 01:37:41.120
 lassen und

01:37:41.120 --> 01:37:41.500
 welche sich

01:37:41.500 --> 01:37:42.180
 nicht überschreiben

01:37:42.180 --> 01:37:42.440
 lassen.

01:37:42.440 --> 01:37:43.140
 Das ist leider,

01:37:43.140 --> 01:37:44.000
 weil das nämlich auch

01:37:44.000 --> 01:37:44.240
 so eine

01:37:44.240 --> 01:37:44.760
 Nineties

01:37:44.760 --> 01:37:46.080
 Sache ist,

01:37:46.080 --> 01:37:47.380
 schlecht

01:37:47.380 --> 01:37:48.760
 spezifiziert

01:37:48.760 --> 01:37:49.140
 oder ich glaube

01:37:49.140 --> 01:37:49.460
 gar nicht

01:37:49.460 --> 01:37:50.460
 richtig spezifiziert

01:37:50.460 --> 01:37:52.560
 und überhaupt

01:37:52.560 --> 01:37:53.400
 nicht interoperabel,

01:37:53.400 --> 01:37:53.900
 also in jedem

01:37:53.900 --> 01:37:54.180
 Browser

01:37:54.180 --> 01:37:54.580
 einen Tacken

01:37:54.580 --> 01:37:54.960
 anders.

01:37:54.960 --> 01:37:56.560
 Und deswegen

01:37:56.560 --> 01:37:57.580
 ist es schwierig,

01:37:57.580 --> 01:37:58.500
 das ist ein

01:37:58.500 --> 01:37:59.340
 extrem wackeliges

01:37:59.340 --> 01:37:59.760
 Fundament,

01:37:59.760 --> 01:38:00.240
 dass wir das

01:38:00.240 --> 01:38:00.760
 in unserer

01:38:00.760 --> 01:38:02.280
 Spezifikation

01:38:02.280 --> 01:38:02.760
 aufgreifen

01:38:02.760 --> 01:38:03.060
 könnten.

01:38:03.060 --> 01:38:03.500
 Sonst könnten

01:38:03.500 --> 01:38:04.020
 wir ja sagen,

01:38:04.020 --> 01:38:04.920
 wir erlauben

01:38:04.920 --> 01:38:05.500
 grundsätzlich

01:38:05.500 --> 01:38:06.500
 keine,

01:38:06.500 --> 01:38:07.560
 wir erlauben

01:38:07.560 --> 01:38:08.060
 grundsätzlich

01:38:08.060 --> 01:38:08.360
 Name

01:38:08.360 --> 01:38:08.520
 und

01:38:08.520 --> 01:38:08.840
 ID

01:38:08.840 --> 01:38:09.400
 Attribute

01:38:09.400 --> 01:38:09.700
 aus,

01:38:09.700 --> 01:38:09.940
 dass sie

01:38:09.940 --> 01:38:10.160
 haben

01:38:10.160 --> 01:38:10.640
 den Wert.

01:38:10.640 --> 01:38:13.420
 So einen

01:38:13.420 --> 01:38:13.820
 absurden

01:38:13.820 --> 01:38:14.040
 Kram

01:38:14.040 --> 01:38:14.360
 könnte man

01:38:14.360 --> 01:38:14.500
 sich

01:38:14.500 --> 01:38:14.840
 natürlich

01:38:14.840 --> 01:38:15.260
 überlegen,

01:38:15.260 --> 01:38:15.660
 aber das

01:38:15.660 --> 01:38:15.940
 ist halt

01:38:15.940 --> 01:38:16.260
 wieder so

01:38:16.260 --> 01:38:16.680
 extrem

01:38:16.680 --> 01:38:17.280
 handwavy

01:38:17.280 --> 01:38:17.940
 und dann

01:38:17.940 --> 01:38:18.280
 machen wir

01:38:18.280 --> 01:38:18.580
 halt doch

01:38:18.580 --> 01:38:19.060
 irgendwelche

01:38:19.060 --> 01:38:19.580
 Use Cases

01:38:19.580 --> 01:38:19.980
 kaputt

01:38:19.980 --> 01:38:20.220
 und dann

01:38:20.220 --> 01:38:20.480
 ist es

01:38:20.480 --> 01:38:20.660
 nicht

01:38:20.660 --> 01:38:21.020
 klar

01:38:21.020 --> 01:38:22.640
 und wenn

01:38:22.640 --> 01:38:22.920
 wir den

01:38:22.920 --> 01:38:23.280
 Anspruch

01:38:23.280 --> 01:38:23.760
 haben

01:38:23.760 --> 01:38:24.240
 und den

01:38:24.240 --> 01:38:24.440
 haben

01:38:24.440 --> 01:38:24.620
 wir

01:38:24.620 --> 01:38:24.880
 halt,

01:38:24.880 --> 01:38:25.700
 dass

01:38:25.700 --> 01:38:27.320
 die

01:38:27.320 --> 01:38:27.840
 Sanitizer

01:38:27.840 --> 01:38:28.160
 API

01:38:28.160 --> 01:38:28.620
 in der

01:38:28.620 --> 01:38:29.020
 HTML

01:38:29.020 --> 01:38:30.000
 Spezifikation

01:38:30.000 --> 01:38:30.440
 landet,

01:38:30.440 --> 01:38:31.300
 also wirklich

01:38:31.300 --> 01:38:31.600
 im

01:38:31.600 --> 01:38:32.040
 HTML

01:38:32.040 --> 01:38:32.520
 Speck,

01:38:32.520 --> 01:38:33.480
 dann können

01:38:33.480 --> 01:38:33.860
 wir halt nicht

01:38:33.860 --> 01:38:34.080
 sagen,

01:38:34.080 --> 01:38:34.740
 wir funktionieren

01:38:34.740 --> 01:38:35.200
 für drei

01:38:35.200 --> 01:38:35.680
 Elemente,

01:38:35.680 --> 01:38:36.000
 aber für

01:38:36.000 --> 01:38:36.480
 diese fünf

01:38:36.480 --> 01:38:36.860
 dann doch

01:38:36.860 --> 01:38:37.080
 nicht

01:38:37.080 --> 01:38:37.400
 und dann

01:38:37.400 --> 01:38:37.980
 wieder anders,

01:38:37.980 --> 01:38:38.760
 sondern dann

01:38:38.760 --> 01:38:39.180
 muss es halt

01:38:39.180 --> 01:38:39.500
 für alle

01:38:39.500 --> 01:38:39.820
 klappen.

01:38:39.820 --> 01:38:40.700
 Deswegen

01:38:40.700 --> 01:38:41.160
 haben wir

01:38:41.160 --> 01:38:41.780
 jetzt gesagt,

01:38:41.780 --> 01:38:42.360
 wir klappern

01:38:42.360 --> 01:38:42.940
 das Thema

01:38:42.940 --> 01:38:43.800
 DOM-Clobbering

01:38:43.800 --> 01:38:44.180
 aus

01:38:44.180 --> 01:38:47.600
 und ich

01:38:47.600 --> 01:38:47.700
 bin

01:38:47.700 --> 01:38:48.060
 halbwegs

01:38:48.060 --> 01:38:48.500
 zufrieden

01:38:48.500 --> 01:38:48.800
 damit.

01:38:48.800 --> 01:38:51.020
 Interessant,

01:38:51.020 --> 01:38:51.420
 was das für

01:38:51.420 --> 01:38:52.000
 Kreise zieht.

01:38:52.000 --> 01:38:52.200
 Aber du kannst den

01:38:52.200 --> 01:38:53.000
 Sanitizer natürlich

01:38:53.000 --> 01:38:53.760
 Entschuldigung,

01:38:53.760 --> 01:38:54.160
 jetzt habe ich dich

01:38:54.160 --> 01:38:54.560
 unterbrochen,

01:38:54.560 --> 01:38:55.120
 sag nur mal bitte.

01:38:55.120 --> 01:38:56.400
 Erzähl ruhig

01:38:56.400 --> 01:38:56.660
 weiter.

01:38:56.660 --> 01:38:58.340
 Du kannst aber

01:38:58.340 --> 01:38:58.740
 natürlich den

01:38:58.740 --> 01:38:59.340
 Sanitizer so

01:38:59.340 --> 01:38:59.840
 konfigurieren,

01:38:59.840 --> 01:39:00.140
 dass du

01:39:00.140 --> 01:39:00.680
 grundsätzlich

01:39:00.680 --> 01:39:01.460
 keine ID

01:39:01.460 --> 01:39:02.440
 und keine

01:39:02.440 --> 01:39:03.120
 Name-Attribute

01:39:03.120 --> 01:39:03.580
 erlaubst.

01:39:03.580 --> 01:39:04.760
 Kann ja auch

01:39:04.760 --> 01:39:05.340
 tatsächlich Sinn

01:39:05.340 --> 01:39:05.580
 machen.

01:39:05.580 --> 01:39:07.920
 Ja,

01:39:07.920 --> 01:39:08.300
 Wahnsinn.

01:39:08.300 --> 01:39:09.940
 Aber grundsätzlich

01:39:09.940 --> 01:39:10.620
 sind die halt auch

01:39:10.620 --> 01:39:11.020
 harmlos,

01:39:11.020 --> 01:39:11.460
 von daher

01:39:11.460 --> 01:39:12.560
 schwierig,

01:39:12.560 --> 01:39:13.880
 einfach schwierig.

01:39:13.880 --> 01:39:15.520
 Und dann

01:39:15.520 --> 01:39:16.080
 habe ich natürlich

01:39:16.080 --> 01:39:16.580
 was

01:39:16.580 --> 01:39:18.360
 ganz

01:39:18.360 --> 01:39:19.020
 Einfaches,

01:39:19.020 --> 01:39:19.580
 was man aber auch

01:39:19.580 --> 01:39:20.040
 sagen muss,

01:39:20.040 --> 01:39:20.580
 wenn ich sage,

01:39:20.580 --> 01:39:20.800
 hey,

01:39:20.800 --> 01:39:21.400
 wir schützen vor

01:39:21.400 --> 01:39:22.140
 Cross-Site-Scripting.

01:39:22.140 --> 01:39:23.060
 Wir schützen

01:39:23.060 --> 01:39:23.880
 natürlich nur

01:39:23.880 --> 01:39:25.300
 vor Cross-Site-Scripting,

01:39:25.420 --> 01:39:26.000
 wenn es sich

01:39:26.000 --> 01:39:26.440
 im Rahmen

01:39:26.440 --> 01:39:26.720
 deiner

01:39:26.720 --> 01:39:27.500
 kleinseitigen

01:39:27.500 --> 01:39:27.900
 Anwendung

01:39:27.900 --> 01:39:28.320
 abspielt,

01:39:28.320 --> 01:39:29.600
 also in deinem

01:39:29.600 --> 01:39:30.780
 HTML-Java-Script,

01:39:30.780 --> 01:39:32.360
 zum Beispiel

01:39:32.360 --> 01:39:32.680
 in deiner

01:39:32.680 --> 01:39:33.720
 Single-Page-Application.

01:39:33.720 --> 01:39:34.940
 Sobald du

01:39:34.940 --> 01:39:35.320
 irgendwie

01:39:35.320 --> 01:39:36.280
 HTML an den

01:39:36.280 --> 01:39:36.980
 Server schickst

01:39:36.980 --> 01:39:37.520
 oder vom

01:39:37.520 --> 01:39:38.480
 Server zurückkommst,

01:39:38.480 --> 01:39:40.260
 dann händelt das

01:39:40.260 --> 01:39:40.780
 ja der Browser

01:39:40.780 --> 01:39:41.340
 einfach so,

01:39:41.340 --> 01:39:41.880
 als wäre es

01:39:41.880 --> 01:39:42.380
 ein Dokument,

01:39:42.380 --> 01:39:42.800
 was dem

01:39:42.800 --> 01:39:43.040
 Browser

01:39:43.040 --> 01:39:43.640
 geschickt wurde,

01:39:43.640 --> 01:39:44.020
 weil das

01:39:44.020 --> 01:39:44.460
 so bei euch

01:39:44.460 --> 01:39:44.960
 auf der Platte

01:39:44.960 --> 01:39:45.220
 liegt,

01:39:45.220 --> 01:39:46.020
 dann kann

01:39:46.020 --> 01:39:46.140
 die

01:39:46.140 --> 01:39:46.880
 Sanitizer-APA

01:39:46.880 --> 01:39:47.120
 auch nicht

01:39:47.120 --> 01:39:47.400
 helfen.

01:39:47.400 --> 01:39:49.340
 Das ist

01:39:49.340 --> 01:39:50.240
 was,

01:39:50.240 --> 01:39:50.700
 was ich glaube

01:39:50.700 --> 01:39:51.200
 ich bei der

01:39:51.200 --> 01:39:53.160
 Definition

01:39:53.160 --> 01:39:54.300
 von Cross-Site-Scripting

01:39:54.300 --> 01:39:54.900
 ganz am Anfang

01:39:54.900 --> 01:39:55.960
 unterschlagen habe,

01:39:55.960 --> 01:39:57.160
 man unterscheidet

01:39:57.160 --> 01:39:57.640
 so ein bisschen

01:39:57.640 --> 01:39:58.520
 in bestimmte Typen

01:39:58.520 --> 01:39:59.520
 von Cross-Site-Scripting

01:39:59.520 --> 01:40:01.060
 und du kannst

01:40:01.060 --> 01:40:01.580
 natürlich irgendwie

01:40:01.580 --> 01:40:02.540
 serverseitig haben

01:40:02.540 --> 01:40:03.560
 oder du kannst

01:40:03.560 --> 01:40:03.840
 es halt

01:40:03.840 --> 01:40:04.720
 clientseitig haben

01:40:04.720 --> 01:40:06.300
 und wenn du

01:40:06.300 --> 01:40:07.020
 serverseitig hast,

01:40:07.020 --> 01:40:07.360
 dann können wir

01:40:07.360 --> 01:40:07.820
 halt nichts tun,

01:40:07.820 --> 01:40:08.380
 weil da sehen wir

01:40:08.380 --> 01:40:09.680
 nichts und wir

01:40:09.680 --> 01:40:10.140
 können eigentlich

01:40:10.140 --> 01:40:10.600
 nur helfen,

01:40:10.600 --> 01:40:12.160
 wenn du das

01:40:12.160 --> 01:40:12.500
 alles mit

01:40:12.500 --> 01:40:13.340
 JavaScript machst.

01:40:13.340 --> 01:40:15.760
 Genau,

01:40:15.760 --> 01:40:16.480
 das sind so

01:40:16.480 --> 01:40:17.960
 die Sternchen

01:40:17.960 --> 01:40:18.360
 gewesen,

01:40:18.360 --> 01:40:20.220
 die stehen

01:40:20.220 --> 01:40:20.740
 tatsächlich auch

01:40:20.740 --> 01:40:20.960
 in unserer

01:40:20.960 --> 01:40:21.800
 Spezifikation.

01:40:21.800 --> 01:40:23.180
 Ist mir auch

01:40:23.180 --> 01:40:23.820
 relativ wichtig,

01:40:23.960 --> 01:40:24.320
 dass wir da

01:40:24.320 --> 01:40:24.800
 klar sind,

01:40:24.800 --> 01:40:25.200
 weil wir

01:40:25.200 --> 01:40:26.480
 wie gesagt,

01:40:26.480 --> 01:40:26.900
 wir versuchen

01:40:26.900 --> 01:40:27.420
 da was relativ

01:40:27.420 --> 01:40:28.360
 Großes zu versprechen,

01:40:28.360 --> 01:40:28.980
 dann will ich halt

01:40:28.980 --> 01:40:29.300
 auch nicht

01:40:29.300 --> 01:40:30.220
 zu viel zu versprechen

01:40:30.220 --> 01:40:33.420
 und ganz klar machen,

01:40:33.420 --> 01:40:34.140
 was unsere,

01:40:34.140 --> 01:40:35.320
 ja,

01:40:35.320 --> 01:40:36.040
 wo unsere Grenzen

01:40:36.040 --> 01:40:36.300
 sind.

01:40:36.300 --> 01:40:37.300
 Also unsere

01:40:37.300 --> 01:40:37.860
 Speck hat

01:40:37.860 --> 01:40:38.140
 tatsächlich

01:40:38.140 --> 01:40:38.580
 ein Kapitel

01:40:38.580 --> 01:40:39.020
 Security

01:40:39.020 --> 01:40:39.780
 Considerations

01:40:39.780 --> 01:40:40.100
 und da

01:40:40.100 --> 01:40:40.560
 gehen wir

01:40:40.560 --> 01:40:40.900
 das alles

01:40:40.900 --> 01:40:41.360
 einmal durch

01:40:41.360 --> 01:40:42.140
 in einer

01:40:42.140 --> 01:40:42.380
 anderen

01:40:42.380 --> 01:40:42.920
 Reihenfolge

01:40:42.920 --> 01:40:43.260
 als hier,

01:40:43.260 --> 01:40:44.080
 aber whatever.

01:40:44.080 --> 01:40:45.000
 Ich muss ja

01:40:45.000 --> 01:40:45.180
 sagen,

01:40:45.180 --> 01:40:45.600
 dass ich die

01:40:45.600 --> 01:40:45.860
 Speck,

01:40:45.860 --> 01:40:46.240
 ich habe mir

01:40:46.240 --> 01:40:46.560
 die Seite

01:40:46.560 --> 01:40:47.060
 mal angeguckt,

01:40:47.060 --> 01:40:47.280
 ich habe

01:40:47.280 --> 01:40:47.720
 nicht alles

01:40:47.720 --> 01:40:48.140
 gelesen,

01:40:48.140 --> 01:40:48.880
 muss ich zugeben,

01:40:49.140 --> 01:40:50.360
 dass ich das

01:40:50.360 --> 01:40:50.980
 aber von der

01:40:50.980 --> 01:40:52.120
 Menge her

01:40:52.120 --> 01:40:53.440
 überschaubar

01:40:53.440 --> 01:40:55.120
 und begreifbar

01:40:55.120 --> 01:40:55.420
 finde,

01:40:55.420 --> 01:40:56.240
 weil die längsten

01:40:56.240 --> 01:40:56.660
 Abschnitte

01:40:56.660 --> 01:40:57.280
 sind eigentlich

01:40:57.280 --> 01:40:57.780
 so Listen

01:40:57.780 --> 01:40:58.840
 mit Elementen

01:40:58.840 --> 01:40:59.500
 und Attributen,

01:40:59.500 --> 01:40:59.940
 das ist das,

01:40:59.940 --> 01:41:01.000
 was den Scrollbalken

01:41:01.000 --> 01:41:01.680
 klein macht,

01:41:01.680 --> 01:41:01.900
 ja,

01:41:01.900 --> 01:41:03.420
 aber ich finde,

01:41:03.420 --> 01:41:03.880
 das ist so,

01:41:03.880 --> 01:41:04.440
 der Appendix,

01:41:04.440 --> 01:41:04.720
 ja,

01:41:04.720 --> 01:41:05.580
 ich finde das,

01:41:05.580 --> 01:41:06.400
 ich finde das

01:41:06.400 --> 01:41:07.480
 sehr herrlich

01:41:07.480 --> 01:41:08.220
 begreifbar,

01:41:08.220 --> 01:41:08.720
 also es gibt ja

01:41:08.720 --> 01:41:09.260
 so Specks,

01:41:09.260 --> 01:41:10.160
 die sind,

01:41:10.160 --> 01:41:10.960
 keine Ahnung,

01:41:10.960 --> 01:41:11.520
 wie viel

01:41:11.520 --> 01:41:12.580
 DIN A4-Seiten

01:41:12.580 --> 01:41:13.340
 ausgedruckt,

01:41:13.340 --> 01:41:14.140
 um auf das

01:41:14.140 --> 01:41:14.420
 vorhin,

01:41:14.420 --> 01:41:14.800
 von vorhin

01:41:14.800 --> 01:41:15.400
 zurückzukommen

01:41:15.400 --> 01:41:16.680
 und das finde ich,

01:41:16.680 --> 01:41:17.840
 das finde ich doch

01:41:17.840 --> 01:41:19.180
 tatsächlich irgendwie

01:41:19.180 --> 01:41:20.000
 von der Länge her

01:41:20.000 --> 01:41:20.540
 durchaus,

01:41:20.540 --> 01:41:21.280
 das kann man mal

01:41:21.280 --> 01:41:22.680
 sich in einer halben

01:41:22.680 --> 01:41:23.420
 Stunde oder Stunde

01:41:23.420 --> 01:41:24.100
 mal durchlesen

01:41:24.100 --> 01:41:24.420
 und ich glaube,

01:41:24.420 --> 01:41:24.940
 dann hat man schon

01:41:24.940 --> 01:41:25.460
 ein ganz gutes

01:41:25.460 --> 01:41:26.080
 Gefühl dafür,

01:41:26.080 --> 01:41:27.440
 was einen da erwartet,

01:41:27.560 --> 01:41:28.660
 finde ich echt gut.

01:41:28.660 --> 01:41:30.300
 Schön,

01:41:30.300 --> 01:41:31.100
 das ist schön zu hören,

01:41:31.100 --> 01:41:31.760
 aber ich muss natürlich

01:41:31.760 --> 01:41:31.920
 sagen,

01:41:31.920 --> 01:41:32.540
 das wird noch ein bisschen

01:41:32.540 --> 01:41:32.900
 wachsen,

01:41:32.900 --> 01:41:34.140
 das wird noch ein bisschen

01:41:34.140 --> 01:41:34.800
 sich was ändern,

01:41:34.800 --> 01:41:36.420
 aber wir hoffen halt auch

01:41:36.420 --> 01:41:37.040
 ein paar Sachen,

01:41:37.040 --> 01:41:40.860
 das ist jetzt ein bisschen,

01:41:40.860 --> 01:41:42.420
 es ist noch nicht

01:41:42.420 --> 01:41:43.540
 hundertprozentig klar,

01:41:43.540 --> 01:41:44.120
 aber ich glaube,

01:41:44.120 --> 01:41:44.800
 die Idee ist,

01:41:44.800 --> 01:41:45.320
 dass wir,

01:41:45.320 --> 01:41:47.580
 wenn wir sowas definieren

01:41:47.580 --> 01:41:48.560
 wie setHTML

01:41:48.560 --> 01:41:49.140
 anhand,

01:41:49.140 --> 01:41:50.980
 an einem Attribut,

01:41:50.980 --> 01:41:51.700
 da muss es natürlich,

01:41:51.700 --> 01:41:52.580
 dann können wir das nicht

01:41:52.580 --> 01:41:54.560
 in unserem Speck

01:41:54.560 --> 01:41:55.300
 heimlich verstecken,

01:41:55.300 --> 01:41:56.160
 sondern da muss es halt

01:41:56.160 --> 01:41:57.540
 Teil des Doms

01:41:57.540 --> 01:41:58.560
 Specs oder das HTML

01:41:58.560 --> 01:41:59.100
 Specs sein,

01:41:59.100 --> 01:41:59.740
 ich glaube in dem Fall

01:41:59.740 --> 01:42:00.580
 sogar Domspec

01:42:00.580 --> 01:42:02.720
 und wenn wir eine Liste

01:42:02.720 --> 01:42:04.060
 und das ist,

01:42:04.060 --> 01:42:05.140
 was du gerade gesagt hast,

01:42:05.140 --> 01:42:06.440
 das ist unser Anhang

01:42:06.440 --> 01:42:07.420
 ganz unten in unserer

01:42:07.420 --> 01:42:08.100
 Spezifikation,

01:42:08.100 --> 01:42:08.760
 das ist einfach die Liste

01:42:08.760 --> 01:42:09.340
 von Elementen,

01:42:09.340 --> 01:42:10.280
 die wir für sicher halten,

01:42:10.280 --> 01:42:12.020
 da wird es glaube ich

01:42:12.020 --> 01:42:12.360
 auch noch sehr,

01:42:12.360 --> 01:42:12.940
 sehr viel Feedback

01:42:12.940 --> 01:42:13.280
 zu geben,

01:42:13.280 --> 01:42:13.740
 da bin ich auch

01:42:13.740 --> 01:42:14.420
 gespannt drauf

01:42:14.420 --> 01:42:18.100
 und zwar ganz ernst

01:42:18.100 --> 01:42:18.320
 gemeint,

01:42:18.320 --> 01:42:19.140
 da bin ich gespannt drauf,

01:42:19.140 --> 01:42:19.900
 wie wir da Leuten

01:42:19.900 --> 01:42:20.640
 irgendwie helfen können

01:42:20.640 --> 01:42:21.640
 und was da übliche

01:42:21.640 --> 01:42:22.480
 Use Cases sind

01:42:22.480 --> 01:42:23.100
 und warum wir

01:42:23.100 --> 01:42:24.960
 was entschieden haben.

01:42:26.240 --> 01:42:26.940
 was wollte ich sagen,

01:42:26.940 --> 01:42:27.220
 achso,

01:42:27.220 --> 01:42:28.260
 diese Liste von

01:42:28.260 --> 01:42:29.720
 das ist von dem

01:42:29.720 --> 01:42:30.280
 wir glauben,

01:42:30.280 --> 01:42:31.620
 sicheres HTML

01:42:31.620 --> 01:42:33.300
 für Cross-Side Scripting,

01:42:33.300 --> 01:42:34.240
 das ist glaube ich

01:42:34.240 --> 01:42:34.980
 an sich schon so eine

01:42:34.980 --> 01:42:36.080
 coole Liste einfach mal

01:42:36.080 --> 01:42:37.120
 zu haben und zu sagen,

01:42:37.120 --> 01:42:38.760
 diese HTML Elemente,

01:42:38.760 --> 01:42:39.580
 die kann ich erlauben,

01:42:39.580 --> 01:42:39.920
 wenn ich,

01:42:39.920 --> 01:42:40.680
 selbst wenn ich die

01:42:40.680 --> 01:42:41.400
 Sanitizer API

01:42:41.400 --> 01:42:42.700
 nicht einsetzen kann

01:42:42.700 --> 01:42:43.680
 und ein anderes Tool habe,

01:42:43.680 --> 01:42:45.000
 dann kann man sich

01:42:45.000 --> 01:42:45.580
 vielleicht wenigstens

01:42:45.580 --> 01:42:46.220
 auf so eine Liste

01:42:46.220 --> 01:42:47.040
 einigen und sagen,

01:42:47.040 --> 01:42:48.400
 die hier sind alle

01:42:48.400 --> 01:42:48.900
 in Ordnung

01:42:48.900 --> 01:42:49.560
 und wenn ich was

01:42:49.560 --> 01:42:50.660
 oben drauf setze,

01:42:50.660 --> 01:42:51.960
 dann vielleicht nicht

01:42:51.960 --> 01:42:53.340
 und vielleicht muss es

01:42:53.340 --> 01:42:54.120
 immer eine Untermenge

01:42:54.120 --> 01:42:54.720
 von dem sein,

01:42:54.720 --> 01:42:56.560
 was der HTML-Standard

01:42:56.560 --> 01:42:56.920
 sagt,

01:42:56.920 --> 01:42:58.440
 das ist sicher

01:42:58.440 --> 01:42:59.520
 und die anderen halt nicht

01:42:59.520 --> 01:43:01.360
 und das sind halt

01:43:01.360 --> 01:43:01.900
 alles Sachen,

01:43:01.900 --> 01:43:03.320
 wo wir hoffen,

01:43:03.320 --> 01:43:04.120
 dass wir die irgendwo

01:43:04.120 --> 01:43:05.220
 gut festschreiben können,

01:43:05.220 --> 01:43:06.020
 dass das halt tatsächlich

01:43:06.020 --> 01:43:07.180
 im HTML-Standard steht

01:43:07.180 --> 01:43:08.940
 und ich hoffe,

01:43:08.940 --> 01:43:09.540
 dass da auch andere

01:43:09.540 --> 01:43:10.160
 was von haben.

01:43:10.160 --> 01:43:12.160
 Stellt sich raus,

01:43:12.160 --> 01:43:13.000
 Unclick ist kein

01:43:13.000 --> 01:43:13.780
 sicheres Attribut.

01:43:13.780 --> 01:43:14.680
 Echt?

01:43:14.680 --> 01:43:18.520
 Crazy.

01:43:20.520 --> 01:43:20.920
 Genau.

01:43:20.920 --> 01:43:23.020
 Jetzt habe ich

01:43:23.020 --> 01:43:23.980
 ganz schön fusselig

01:43:23.980 --> 01:43:24.300
 geredet.

01:43:24.300 --> 01:43:24.440
 Ja, ich glaube,

01:43:24.440 --> 01:43:25.240
 wir haben zur

01:43:25.240 --> 01:43:26.380
 Sanitizer API

01:43:26.380 --> 01:43:27.240
 an sich jetzt

01:43:27.240 --> 01:43:28.420
 alles gesagt,

01:43:28.420 --> 01:43:29.020
 wenn dir sonst

01:43:29.020 --> 01:43:29.780
 nichts mehr einfällt,

01:43:29.780 --> 01:43:30.380
 was du unbedingt

01:43:30.380 --> 01:43:31.800
 dazu loswerden möchtest.

01:43:31.800 --> 01:43:33.220
 Heute Abend

01:43:33.220 --> 01:43:33.560
 im Bett

01:43:33.560 --> 01:43:34.200
 oder morgen früh

01:43:34.200 --> 01:43:34.480
 wahrscheinlich.

01:43:34.480 --> 01:43:35.160
 Aber nee,

01:43:35.160 --> 01:43:35.520
 ich glaube,

01:43:35.520 --> 01:43:36.920
 das Wichtigste

01:43:36.920 --> 01:43:37.500
 ist erzählt

01:43:37.500 --> 01:43:38.220
 und ich glaube,

01:43:38.220 --> 01:43:41.300
 ja,

01:43:41.300 --> 01:43:41.820
 der Hauptgrund

01:43:41.820 --> 01:43:43.440
 meiner Anwesenheit

01:43:43.440 --> 01:43:44.780
 hier ist wirklich,

01:43:44.780 --> 01:43:47.180
 dass ich sehr gierig,

01:43:47.180 --> 01:43:48.240
 dass wir sehr gierig

01:43:48.240 --> 01:43:48.900
 auf Feedback sind.

01:43:48.900 --> 01:43:49.700
 Also wenn irgendwas

01:43:49.700 --> 01:43:50.420
 komisch ist

01:43:50.420 --> 01:43:51.540
 oder anders besser geht

01:43:51.540 --> 01:43:53.000
 oder unverständlich,

01:43:53.000 --> 01:43:54.220
 dann unbedingt.

01:43:54.220 --> 01:43:55.640
 Und wenn man sich

01:43:55.640 --> 01:43:56.100
 nicht traut,

01:43:56.100 --> 01:43:56.520
 das öffentlich

01:43:56.520 --> 01:43:57.400
 auf GitHub zu schreiben,

01:43:57.400 --> 01:43:57.980
 das kann ich auch

01:43:57.980 --> 01:43:58.820
 manchmal verstehen,

01:43:58.820 --> 01:44:00.660
 dann schickt mir

01:44:00.660 --> 01:44:01.380
 eine Twitter-DM.

01:44:01.380 --> 01:44:01.720
 Ich bin

01:44:01.720 --> 01:44:02.840
 freddib auf Twitter

01:44:02.840 --> 01:44:05.840
 oder es geht auch

01:44:05.840 --> 01:44:06.420
 freddib

01:44:06.420 --> 01:44:07.480
 at mozilla.com

01:44:07.480 --> 01:44:08.360
 oder fbraun

01:44:08.360 --> 01:44:09.400
 at mozilla.com

01:44:09.400 --> 01:44:12.440
 und früher oder später

01:44:12.440 --> 01:44:13.100
 werde ich antworten.

01:44:13.100 --> 01:44:13.600
 Wahrscheinlich nicht

01:44:13.600 --> 01:44:14.480
 sofort am nächsten Tag,

01:44:14.480 --> 01:44:15.300
 wahrscheinlich auch

01:44:15.300 --> 01:44:16.040
 nicht in der nächsten Stunde,

01:44:16.040 --> 01:44:18.120
 aber ich glaube,

01:44:18.180 --> 01:44:19.080
 das muss unbedingt

01:44:19.080 --> 01:44:20.880
 nicht alleine passieren,

01:44:20.880 --> 01:44:21.500
 was wir hier tun,

01:44:21.500 --> 01:44:22.800
 sondern mit Feedback.

01:44:22.800 --> 01:44:24.660
 Ja,

01:44:24.660 --> 01:44:25.100
 also,

01:44:25.100 --> 01:44:25.840
 ihr habt es gehört.

01:44:25.840 --> 01:44:27.760
 Einfach mal melden.

01:44:27.760 --> 01:44:29.460
 Aber es dürft ihr erst machen,

01:44:29.460 --> 01:44:30.200
 nachdem ihr die Speck

01:44:30.200 --> 01:44:31.020
 ganz gelesen habt,

01:44:31.020 --> 01:44:32.680
 inklusive der Attribute-Liste.

01:44:32.680 --> 01:44:33.860
 Ja,

01:44:33.860 --> 01:44:34.180
 vielleicht,

01:44:34.180 --> 01:44:34.980
 oh Gott,

01:44:34.980 --> 01:44:36.440
 vielleicht findet ihr noch Fehler.

01:44:36.440 --> 01:44:36.760
 Nein,

01:44:36.760 --> 01:44:37.520
 ihr müsst es natürlich

01:44:37.520 --> 01:44:38.560
 nicht ganz gelesen haben,

01:44:38.560 --> 01:44:39.380
 aber wenn ihr glaubt,

01:44:39.380 --> 01:44:40.280
 vielleicht ist meine Frage

01:44:40.280 --> 01:44:40.880
 eine dumme Frage,

01:44:40.880 --> 01:44:41.720
 dann könnt ihr natürlich

01:44:41.720 --> 01:44:42.760
 vorher das Speck lesen

01:44:42.760 --> 01:44:44.620
 und in den GitHub-Issues gucken,

01:44:44.620 --> 01:44:45.260
 was ist da,

01:44:45.260 --> 01:44:47.820
 was sind da noch offene Fragen,

01:44:47.820 --> 01:44:48.540
 von denen wir wissen,

01:44:48.540 --> 01:44:49.300
 dass es die gibt,

01:44:49.300 --> 01:44:51.760
 dann könnt ihr da natürlich,

01:44:51.760 --> 01:44:53.700
 natürlich kommentieren,

01:44:53.700 --> 01:44:54.760
 aber ich weiß halt auch,

01:44:54.760 --> 01:44:56.540
 dass es manchmal so eine Hürde ist

01:44:56.540 --> 01:44:57.560
 und dass es manchmal auch

01:44:57.560 --> 01:44:58.840
 unangenehm ist,

01:44:58.840 --> 01:44:59.700
 mit Leuten zu reden,

01:44:59.700 --> 01:45:00.180
 wo man weiß,

01:45:00.180 --> 01:45:01.620
 da antworten mir gleich fünf Leute,

01:45:01.620 --> 01:45:03.060
 die voll die Ahnung haben,

01:45:03.060 --> 01:45:04.340
 vielleicht traue ich mich doch nicht,

01:45:04.340 --> 01:45:04.880
 was zu schreiben,

01:45:04.880 --> 01:45:06.620
 dann nehme ich das gerne per E-Mail an.

01:45:07.660 --> 01:45:09.480
 Und wie kommuniziert ihr untereinander

01:45:09.480 --> 01:45:10.940
 dann auch über GitHub-Issues

01:45:10.940 --> 01:45:11.880
 oder habt ihr irgendwie

01:45:11.880 --> 01:45:12.620
 noch eine Mailing-Liste?

01:45:12.620 --> 01:45:12.960
 Ich weiß,

01:45:12.960 --> 01:45:13.820
 dass es das ja teilweise

01:45:13.820 --> 01:45:15.120
 irgendwie gibt beim W3C.

01:45:15.120 --> 01:45:17.020
 Wie ist das bei euch?

01:45:17.020 --> 01:45:20.100
 Also es gibt eine W3C-Mailing-Liste,

01:45:20.100 --> 01:45:20.940
 die heißt, glaube ich,

01:45:20.940 --> 01:45:23.860
 public-web-app-sec,

01:45:23.860 --> 01:45:24.420
 also wie

01:45:24.420 --> 01:45:26.200
 web-anwendungssicherheit

01:45:26.200 --> 01:45:27.880
 at w3.org.

01:45:27.880 --> 01:45:29.480
 Das ist einfach die offizielle

01:45:29.480 --> 01:45:31.480
 Mailing-Liste der Working Group,

01:45:31.480 --> 01:45:33.300
 da passiert aber nicht so super viel.

01:45:33.300 --> 01:45:34.580
 Das meiste,

01:45:34.580 --> 01:45:35.800
 was sehr, sehr hands-on ist,

01:45:35.800 --> 01:45:36.980
 also sehr spezifisch

01:45:36.980 --> 01:45:38.760
 zu der exakten Implementierung

01:45:38.760 --> 01:45:40.560
 und dem Spec-Text

01:45:40.560 --> 01:45:41.640
 passiert eigentlich fast alles

01:45:41.640 --> 01:45:42.100
 auf GitHub.

01:45:42.100 --> 01:45:43.700
 Wir treffen uns

01:45:43.700 --> 01:45:44.820
 mehr oder weniger

01:45:44.820 --> 01:45:45.640
 regelmäßig

01:45:45.640 --> 01:45:47.400
 so eine halbe Stunde

01:45:47.400 --> 01:45:48.480
 Videokonferenz

01:45:48.480 --> 01:45:52.220
 als Autoren

01:45:52.220 --> 01:45:52.860
 untereinander,

01:45:52.860 --> 01:45:54.680
 aber nicht,

01:45:54.680 --> 01:45:55.740
 um strittige Themen

01:45:55.740 --> 01:45:56.480
 zu diskutieren,

01:45:56.480 --> 01:45:57.980
 sondern zu sortieren,

01:45:57.980 --> 01:45:58.800
 was müssen wir noch machen,

01:45:58.800 --> 01:45:59.440
 was haben wir gemacht,

01:45:59.440 --> 01:46:00.540
 was wollen wir als nächstes machen,

01:46:00.540 --> 01:46:01.520
 so ein bisschen

01:46:01.520 --> 01:46:02.980
 Stand-up-mäßig quasi.

01:46:06.200 --> 01:46:07.580
 und ganz, ganz selten,

01:46:07.580 --> 01:46:08.100
 wenn ich irgendwie

01:46:08.100 --> 01:46:08.700
 ein Patch schreibe

01:46:08.700 --> 01:46:09.080
 und merke,

01:46:09.080 --> 01:46:10.200
 hä, das ist aber komisch,

01:46:10.200 --> 01:46:10.780
 in Google ist,

01:46:10.780 --> 01:46:12.320
 in Chrome ist es anders,

01:46:12.320 --> 01:46:14.320
 im Spec ist es nicht ganz klar gesagt,

01:46:14.320 --> 01:46:15.140
 wie der das macht.

01:46:15.140 --> 01:46:16.880
 Ich hätte das jetzt so programmiert,

01:46:16.880 --> 01:46:17.420
 aber ich merke,

01:46:17.420 --> 01:46:17.860
 die Tests,

01:46:17.860 --> 01:46:18.860
 die wir geschrieben haben,

01:46:18.860 --> 01:46:21.280
 die erwarten das anders,

01:46:21.280 --> 01:46:22.420
 dann schicke ich halt einfach

01:46:22.420 --> 01:46:23.040
 direkt eine E-Mail

01:46:23.040 --> 01:46:23.360
 und sage,

01:46:23.360 --> 01:46:23.620
 ähm,

01:46:23.620 --> 01:46:24.020
 warte mal,

01:46:24.020 --> 01:46:25.360
 aber,

01:46:25.360 --> 01:46:25.780
 äh,

01:46:25.780 --> 01:46:26.320
 ich glaube,

01:46:26.320 --> 01:46:27.360
 GitHub ist eigentlich die,

01:46:27.360 --> 01:46:28.080
 die Antwort,

01:46:28.080 --> 01:46:29.940
 mein 5-Minuten-Minolog,

01:46:29.940 --> 01:46:31.040
 zusammengefasst,

01:46:31.040 --> 01:46:31.420
 äh,

01:46:31.420 --> 01:46:32.180
 GitHub-Issues.

01:46:32.800 --> 01:46:32.940
 Ne,

01:46:32.940 --> 01:46:34.020
 das finde ich auch gut.

01:46:34.020 --> 01:46:34.280
 Also,

01:46:34.280 --> 01:46:35.420
 das ist ja eine Plattform,

01:46:35.420 --> 01:46:37.040
 die wahrscheinlich auch jeder kennt

01:46:37.040 --> 01:46:37.800
 und die hat ja auch

01:46:37.800 --> 01:46:39.320
 einen sehr guten Feedback-Mechanismus

01:46:39.320 --> 01:46:40.340
 schon irgendwie integriert,

01:46:40.340 --> 01:46:41.000
 also finde ich,

01:46:41.000 --> 01:46:41.260
 äh,

01:46:41.260 --> 01:46:42.720
 finde ich sehr passend dafür.

01:46:42.720 --> 01:46:44.040
 Ja,

01:46:44.040 --> 01:46:44.920
 finde ich fast besser,

01:46:44.920 --> 01:46:45.740
 als eine Mailing-Liste

01:46:45.740 --> 01:46:46.540
 zum Kommunizieren,

01:46:46.540 --> 01:46:47.760
 gerade wenn es um sowas geht.

01:46:47.760 --> 01:46:50.260
 Weil man kann ja theoretisch,

01:46:50.260 --> 01:46:50.560
 äh,

01:46:50.560 --> 01:46:52.320
 Bezug auf eine einzige Zeile nehmen

01:46:52.320 --> 01:46:52.880
 und, äh,

01:46:52.880 --> 01:46:53.120
 sagen,

01:46:53.120 --> 01:46:53.400
 hey,

01:46:53.400 --> 01:46:54.120
 in der Zeile,

01:46:54.120 --> 01:46:55.220
 wie soll denn das?

01:46:55.220 --> 01:46:55.760
 Das ist doch,

01:46:55.760 --> 01:46:56.180
 äh,

01:46:56.180 --> 01:46:56.920
 ist doch Quatsch,

01:46:56.920 --> 01:46:58.020
 weil das

01:46:58.020 --> 01:46:59.480
 On-Click-Attribut

01:46:59.480 --> 01:47:00.300
 ist doch total sicher.

01:47:00.540 --> 01:47:01.280
 Und wenn es dann,

01:47:01.280 --> 01:47:02.700
 wenn es dann Meta wird

01:47:02.700 --> 01:47:03.440
 oder High-Level

01:47:03.440 --> 01:47:04.540
 und gar nicht so sehr

01:47:04.540 --> 01:47:05.800
 um die spezifische

01:47:05.800 --> 01:47:07.380
 Implementierung

01:47:07.380 --> 01:47:07.640
 oder,

01:47:07.640 --> 01:47:09.040
 oder wie sei so ein Algorithmus

01:47:09.040 --> 01:47:10.200
 abgebildet ist in der Speck,

01:47:10.200 --> 01:47:10.580
 sondern,

01:47:10.580 --> 01:47:12.840
 sondern den Zustand der Speck

01:47:12.840 --> 01:47:14.120
 und wie das irgendwie

01:47:14.120 --> 01:47:15.840
 früher oder später mal

01:47:15.840 --> 01:47:16.420
 zu einer

01:47:16.420 --> 01:47:17.860
 tatsächlichen,

01:47:17.860 --> 01:47:19.340
 zu einem tatsächlichen

01:47:19.340 --> 01:47:20.080
 Standard wird,

01:47:20.080 --> 01:47:21.420
 das passiert dann halt

01:47:21.420 --> 01:47:22.220
 in den W3G,

01:47:22.220 --> 01:47:23.520
 in den W3C-Foren

01:47:23.520 --> 01:47:24.440
 wie der Mailing-Liste

01:47:24.440 --> 01:47:25.040
 und so weiter.

01:47:25.660 --> 01:47:26.440
 Und da gibt es natürlich

01:47:26.440 --> 01:47:27.680
 auch W3C-Prozesse

01:47:27.680 --> 01:47:28.720
 und jetzt ist es

01:47:28.720 --> 01:47:29.860
 halt noch nicht mal

01:47:29.860 --> 01:47:30.880
 ein Working Draft,

01:47:30.880 --> 01:47:32.080
 muss ich dazu sagen,

01:47:32.080 --> 01:47:32.860
 sondern es ist ein

01:47:32.860 --> 01:47:34.140
 Community,

01:47:34.140 --> 01:47:36.160
 ein Draft

01:47:36.160 --> 01:47:37.140
 Community

01:47:37.140 --> 01:47:38.320
 Group Report,

01:47:38.320 --> 01:47:39.800
 was nichts anderes heißt,

01:47:39.800 --> 01:47:40.220
 als

01:47:40.220 --> 01:47:41.780
 da haben Leute

01:47:41.780 --> 01:47:42.660
 mal was aufgeschrieben.

01:47:42.660 --> 01:47:43.200
 Also es hat

01:47:43.200 --> 01:47:44.140
 in,

01:47:44.140 --> 01:47:46.520
 in W3C-Terminologie

01:47:46.520 --> 01:47:47.040
 hat es einfach

01:47:47.040 --> 01:47:48.300
 keine Bewandtnis.

01:47:48.300 --> 01:47:49.720
 Niemand hat sich

01:47:49.720 --> 01:47:50.680
 für irgendwas committed

01:47:50.680 --> 01:47:51.040
 und,

01:47:51.040 --> 01:47:51.680
 und sowieso.

01:47:51.980 --> 01:47:52.920
 Was aber auch ein bisschen

01:47:52.920 --> 01:47:57.920
 mit W3C-Prozessen

01:47:57.920 --> 01:47:58.480
 zu tun hat

01:47:58.480 --> 01:47:59.160
 und der Tatsache,

01:47:59.160 --> 01:47:59.960
 dass wir halt

01:47:59.960 --> 01:48:02.580
 Dinge aufsplitten müssen

01:48:02.580 --> 01:48:03.700
 und WhatWG

01:48:03.700 --> 01:48:04.240
 dann wiederum

01:48:04.240 --> 01:48:05.300
 andere Prozesse hat

01:48:05.300 --> 01:48:06.680
 und

01:48:06.680 --> 01:48:08.300
 das HTML

01:48:08.300 --> 01:48:09.200
 und der DOM-Spec

01:48:09.200 --> 01:48:11.440
 primär

01:48:11.440 --> 01:48:12.100
 und

01:48:12.100 --> 01:48:14.260
 kanonisch

01:48:14.260 --> 01:48:15.320
 von WhatWG

01:48:15.320 --> 01:48:16.880
 spezifiziert werden.

01:48:16.880 --> 01:48:18.640
 Aber ich finde es gut,

01:48:18.640 --> 01:48:19.520
 dass du es

01:48:19.520 --> 01:48:20.360
 WhatWG

01:48:20.360 --> 01:48:21.060
 jetzt mal sagst,

01:48:21.080 --> 01:48:22.020
 weil ich habe im Vorfeld

01:48:22.020 --> 01:48:23.420
 für das Spiel

01:48:23.420 --> 01:48:24.020
 recherchiert,

01:48:24.020 --> 01:48:24.580
 wie man das jetzt

01:48:24.580 --> 01:48:25.700
 eigentlich richtig ausspricht.

01:48:25.700 --> 01:48:26.180
 Ich habe es schon

01:48:26.180 --> 01:48:26.940
 so oft gelesen

01:48:26.940 --> 01:48:27.940
 und das Tolle ist,

01:48:27.940 --> 01:48:28.940
 man landet auf einer Seite,

01:48:28.940 --> 01:48:30.260
 die sagt,

01:48:30.260 --> 01:48:30.660
 ja,

01:48:30.660 --> 01:48:31.700
 du kannst das so aussprechen,

01:48:31.700 --> 01:48:32.460
 so oder so.

01:48:32.460 --> 01:48:36.560
 Ja,

01:48:36.560 --> 01:48:37.380
 der Niederländer,

01:48:37.380 --> 01:48:38.760
 mit dem ich da gerne

01:48:38.760 --> 01:48:39.500
 zusammenarbeite,

01:48:39.500 --> 01:48:39.940
 der sagt,

01:48:39.940 --> 01:48:40.440
 glaube ich,

01:48:40.440 --> 01:48:41.540
 WhatWG.

01:48:41.540 --> 01:48:42.860
 WhatWG.

01:48:42.860 --> 01:48:44.540
 Okay,

01:48:44.540 --> 01:48:45.660
 dann sagen wir ab sofort

01:48:45.660 --> 01:48:46.220
 WhatWG.

01:48:46.220 --> 01:48:48.920
 Das gefällt mir gut.

01:48:49.740 --> 01:48:50.160
 Ich glaube,

01:48:50.160 --> 01:48:50.780
 es gibt auch welche,

01:48:50.780 --> 01:48:51.840
 die WhatWorking Groups

01:48:51.840 --> 01:48:51.980
 sagen,

01:48:51.980 --> 01:48:52.720
 aber das kann echt

01:48:52.720 --> 01:48:53.160
 verwirren.

01:48:53.160 --> 01:48:55.840
 Aber ja,

01:48:55.840 --> 01:48:56.100
 genau.

01:48:56.100 --> 01:48:57.700
 Worauf wollte ich hinaus?

01:48:57.700 --> 01:48:58.980
 Richtig,

01:48:58.980 --> 01:49:00.020
 G-Tabishus.

01:49:00.020 --> 01:49:01.400
 Okay.

01:49:01.400 --> 01:49:03.800
 Wenn jetzt jemand

01:49:03.800 --> 01:49:04.800
 zuhört und sagt,

01:49:04.800 --> 01:49:06.140
 das klingt total spannend

01:49:06.140 --> 01:49:07.420
 und ich würde gerne

01:49:07.420 --> 01:49:08.280
 irgendwo mitarbeiten

01:49:08.280 --> 01:49:09.040
 oder ich habe vielleicht

01:49:09.040 --> 01:49:09.580
 eine Idee

01:49:09.580 --> 01:49:10.440
 für einen komplett

01:49:10.440 --> 01:49:11.180
 neuen Draft,

01:49:11.180 --> 01:49:11.980
 für eine neue API,

01:49:11.980 --> 01:49:13.420
 die doch ganz cool wäre.

01:49:13.820 --> 01:49:15.440
 wie hoch sind die Hürden

01:49:15.440 --> 01:49:16.260
 an so Standards

01:49:16.260 --> 01:49:16.920
 mitzuarbeiten?

01:49:16.920 --> 01:49:18.060
 Kann das theoretisch jeder?

01:49:18.060 --> 01:49:19.260
 Natürlich mit dem

01:49:19.260 --> 01:49:20.260
 entsprechenden Hintergrundwissen

01:49:20.260 --> 01:49:20.700
 schon ein bisschen,

01:49:20.700 --> 01:49:22.640
 aber wie läuft das denn?

01:49:22.640 --> 01:49:26.300
 Das hat tatsächlich

01:49:26.300 --> 01:49:28.420
 eine gewisse Abhängigkeit

01:49:28.420 --> 01:49:30.360
 von der Schöpfungshöhe

01:49:30.360 --> 01:49:31.340
 des Beitrages

01:49:31.340 --> 01:49:32.060
 und das ist jetzt wieder

01:49:32.060 --> 01:49:33.960
 so eine W3C-Bürokratiegeschichte,

01:49:33.960 --> 01:49:35.260
 über die ich fast gar nicht,

01:49:35.260 --> 01:49:36.860
 am liebsten gar nicht

01:49:36.860 --> 01:49:37.320
 reden würde,

01:49:37.320 --> 01:49:38.140
 aber ich versuche es mal

01:49:38.140 --> 01:49:38.740
 zu erklären.

01:49:38.740 --> 01:49:39.820
 Ich kann es aber auch,

01:49:39.820 --> 01:49:40.260
 ehrlich gesagt,

01:49:40.260 --> 01:49:41.280
 nicht so super gut erklären.

01:49:41.960 --> 01:49:42.800
 Und zwar die Idee

01:49:42.800 --> 01:49:44.780
 vom W3C ist tatsächlich,

01:49:44.780 --> 01:49:47.480
 dass sehr viele Firmen

01:49:47.480 --> 01:49:48.460
 da Mitglied sind

01:49:48.460 --> 01:49:49.980
 und wenn man sich

01:49:49.980 --> 01:49:51.320
 innerhalb des W3C

01:49:51.320 --> 01:49:52.940
 als alle W3C-Mitglieder

01:49:52.940 --> 01:49:54.100
 darauf geeinigt hat,

01:49:54.100 --> 01:49:55.600
 dass etwas eine gute Idee ist

01:49:55.600 --> 01:49:58.480
 und im Rahmen einer Working Group

01:49:58.480 --> 01:50:00.120
 bearbeitet werden soll,

01:50:00.120 --> 01:50:00.940
 das heißt noch nicht,

01:50:00.940 --> 01:50:02.180
 dass es fertig ist,

01:50:02.180 --> 01:50:02.540
 sondern nur,

01:50:02.540 --> 01:50:03.980
 dass es bearbeitet werden soll,

01:50:03.980 --> 01:50:08.580
 dann macht man gleichzeitig

01:50:08.580 --> 01:50:09.460
 auch ein Claim,

01:50:09.460 --> 01:50:10.820
 dass man entweder

01:50:10.820 --> 01:50:11.840
 keine Patente hat

01:50:11.840 --> 01:50:12.740
 auf die Technologie

01:50:12.740 --> 01:50:14.940
 oder die Patente

01:50:14.940 --> 01:50:16.160
 niemals einsetzen wird.

01:50:16.160 --> 01:50:19.540
 Und ich weiß nicht,

01:50:19.540 --> 01:50:21.540
 was das bedeutet,

01:50:21.540 --> 01:50:22.840
 wenn man als,

01:50:22.840 --> 01:50:25.600
 ich sag mal,

01:50:25.600 --> 01:50:26.420
 Außenstehender

01:50:26.420 --> 01:50:27.900
 im W3C mitarbeitet,

01:50:27.900 --> 01:50:28.700
 wie das funktioniert,

01:50:28.700 --> 01:50:31.100
 weiß ich leider ehrlich gesagt nicht.

01:50:32.040 --> 01:50:32.760
 Das heißt,

01:50:32.760 --> 01:50:34.700
 die meisten arbeiten dann tatsächlich

01:50:34.700 --> 01:50:35.240
 bei einer Firma,

01:50:35.240 --> 01:50:36.400
 die auch wirklich Mitglied ist?

01:50:36.400 --> 01:50:37.520
 Die meisten.

01:50:37.520 --> 01:50:38.380
 Natürlich,

01:50:38.380 --> 01:50:38.920
 wie gesagt,

01:50:38.920 --> 01:50:39.760
 Schöpfungshöhe,

01:50:39.760 --> 01:50:40.820
 auch so ein schreckliches Wort,

01:50:40.820 --> 01:50:42.680
 aber wenn es natürlich

01:50:42.680 --> 01:50:44.200
 um irgendwelche Sachen geht,

01:50:44.200 --> 01:50:46.100
 Verbesserungen an der Spezifikation,

01:50:46.100 --> 01:50:47.860
 die nicht wirklich

01:50:47.860 --> 01:50:48.960
 was damit zu tun haben,

01:50:48.960 --> 01:50:49.820
 wie es funktioniert,

01:50:49.820 --> 01:50:51.260
 sondern eher was damit zu tun haben,

01:50:51.260 --> 01:50:52.080
 wie wir es erklären,

01:50:52.080 --> 01:50:54.100
 dann ist es ein ganz einfaches Ding,

01:50:54.100 --> 01:50:54.960
 weil dann ist es halt

01:50:54.960 --> 01:50:56.740
 keine Änderung

01:50:56.740 --> 01:50:57.720
 im technischen Sinne,

01:50:58.520 --> 01:50:59.880
 was spezifizieren wir her,

01:50:59.880 --> 01:51:02.180
 sondern nur eine Änderung im,

01:51:02.180 --> 01:51:02.760
 ich sag mal,

01:51:02.760 --> 01:51:04.980
 eine redaktionelle Änderung sozusagen.

01:51:04.980 --> 01:51:07.120
 Die sind immer unproblematisch.

01:51:07.120 --> 01:51:08.820
 Also wenn ihr zum Beispiel

01:51:08.820 --> 01:51:11.180
 etwas viel besser erklären könnt

01:51:11.180 --> 01:51:11.560
 als ich

01:51:11.560 --> 01:51:12.420
 und das halte ich für

01:51:12.420 --> 01:51:13.900
 äußerst wahrscheinlich,

01:51:13.900 --> 01:51:15.260
 dann ist das zum Beispiel

01:51:15.260 --> 01:51:16.120
 gar kein Problem.

01:51:16.120 --> 01:51:19.780
 Wenn man sagt,

01:51:19.780 --> 01:51:20.760
 ich würde gerne

01:51:20.760 --> 01:51:23.880
 ein bisschen coden,

01:51:23.880 --> 01:51:24.920
 ein bisschen probieren,

01:51:24.920 --> 01:51:28.240
 dann ist es komplett

01:51:28.240 --> 01:51:29.140
 unproblematisch

01:51:29.140 --> 01:51:29.500
 zum Beispiel

01:51:29.500 --> 01:51:30.860
 beim Polyfill mitzumachen,

01:51:30.860 --> 01:51:33.360
 weil das ist einfach

01:51:33.360 --> 01:51:34.460
 ein Mozilla-Projekt,

01:51:34.460 --> 01:51:35.340
 Open Source,

01:51:35.340 --> 01:51:36.880
 Mozilla Public License

01:51:36.880 --> 01:51:39.740
 und fertig.

01:51:39.740 --> 01:51:40.740
 Also es ist nicht nur

01:51:40.740 --> 01:51:41.160
 Open Source

01:51:41.160 --> 01:51:41.840
 und auch freie Software

01:51:41.840 --> 01:51:44.360
 und da gibt es

01:51:44.360 --> 01:51:45.180
 auf jeden Fall auch

01:51:45.180 --> 01:51:46.100
 Open Issues,

01:51:46.100 --> 01:51:47.140
 die teilweise

01:51:47.140 --> 01:51:48.060
 sehr kompliziert sind

01:51:48.060 --> 01:51:48.520
 und teilweise

01:51:48.520 --> 01:51:49.760
 überhaupt nicht kompliziert sind.

01:51:49.760 --> 01:51:52.680
 Das ist, glaube ich,

01:51:52.680 --> 01:51:54.640
 tatsächlich

01:51:54.640 --> 01:51:56.500
 besser.

01:51:56.500 --> 01:51:57.920
 Und ich weiß nicht,

01:51:57.960 --> 01:51:58.220
 ob ich,

01:51:58.220 --> 01:51:58.760
 ich glaube,

01:51:58.760 --> 01:51:59.580
 solange das noch

01:51:59.580 --> 01:52:01.220
 so ein

01:52:01.220 --> 01:52:03.380
 Community-Group-Report

01:52:03.380 --> 01:52:04.120
 ist im W3C,

01:52:04.120 --> 01:52:04.740
 kann da, glaube ich,

01:52:04.740 --> 01:52:05.540
 auch jeder rumschreiben

01:52:05.540 --> 01:52:05.880
 und machen,

01:52:05.880 --> 01:52:06.380
 was er will.

01:52:06.380 --> 01:52:08.140
 Aber ich weiß nicht,

01:52:08.140 --> 01:52:09.780
 wie sich das ändert

01:52:09.780 --> 01:52:10.900
 und wie bald das passiert.

01:52:10.900 --> 01:52:11.540
 Von daher

01:52:11.540 --> 01:52:12.720
 tut es mir leid,

01:52:12.720 --> 01:52:13.280
 dass ich da so eine

01:52:13.280 --> 01:52:14.200
 unzufriedenstellende

01:52:14.200 --> 01:52:14.860
 Antwort gegeben habe.

01:52:14.860 --> 01:52:15.020
 Ja,

01:52:15.020 --> 01:52:15.420
 alles gut.

01:52:17.420 --> 01:52:18.600
 Das gefällt mir aber auch

01:52:18.600 --> 01:52:19.240
 nicht zu sagen.

01:52:19.240 --> 01:52:19.900
 Ja, ich weiß nicht,

01:52:19.900 --> 01:52:20.760
 ob ihr mir machen könntest.

01:52:20.760 --> 01:52:21.140
 Doof.

01:52:21.140 --> 01:52:23.400
 Es gibt, also,

01:52:23.400 --> 01:52:24.580
 das ist jetzt bestimmt

01:52:24.580 --> 01:52:26.260
 keine geringe Einstiegshürde,

01:52:26.260 --> 01:52:27.260
 aber was es beim W3C

01:52:27.260 --> 01:52:28.080
 auf jeden Fall noch gibt,

01:52:28.080 --> 01:52:29.020
 jenseits von Firmen,

01:52:29.020 --> 01:52:29.720
 sind, glaube ich,

01:52:29.720 --> 01:52:30.160
 sogenannte

01:52:30.160 --> 01:52:31.140
 Invited Experts.

01:52:31.140 --> 01:52:31.720
 Das habe ich irgendwie

01:52:31.720 --> 01:52:32.520
 schon mal mitbekommen.

01:52:32.520 --> 01:52:33.260
 Genau.

01:52:33.260 --> 01:52:33.860
 Leute, die in einem

01:52:33.860 --> 01:52:35.200
 bestimmten Fachbereich,

01:52:35.200 --> 01:52:36.940
 weiß ich nicht,

01:52:36.940 --> 01:52:38.100
 sich unter Beweis gestellt haben

01:52:38.100 --> 01:52:39.500
 oder irgendwie Koryphäe sind,

01:52:39.500 --> 01:52:41.160
 dass sie da eingeladen werden

01:52:41.160 --> 01:52:41.460
 und sagen,

01:52:41.460 --> 01:52:42.620
 hey, hilf doch mal mit hier,

01:52:42.620 --> 01:52:43.740
 wir wollen hier einen Standard machen.

01:52:43.740 --> 01:52:44.240
 Ja.

01:52:44.240 --> 01:52:46.520
 Ja, das gibt es auf jeden Fall.

01:52:46.520 --> 01:52:46.540
 Aber ich glaube,

01:52:46.540 --> 01:52:49.260
 das ist den wenigsten vergönnt,

01:52:49.260 --> 01:52:49.880
 glaube ich,

01:52:49.880 --> 01:52:52.500
 in dieser Regierer Mitglied zu werden.

01:52:52.500 --> 01:52:53.280
 Ich glaube,

01:52:53.280 --> 01:52:54.580
 dass es auch ein Werkzeug ist

01:52:54.580 --> 01:52:55.180
 für Leute,

01:52:55.180 --> 01:52:56.760
 die die Anstellung

01:52:56.760 --> 01:52:58.940
 bei einer Firma verloren haben,

01:52:58.940 --> 01:53:01.220
 die denen die W3C-Mitgliedschaft

01:53:01.220 --> 01:53:02.720
 ermöglicht haben,

01:53:02.860 --> 01:53:03.760
 aber die dann trotzdem

01:53:03.760 --> 01:53:07.520
 weiter an dem Projekt arbeiten,

01:53:07.520 --> 01:53:08.080
 obwohl sie jetzt

01:53:08.080 --> 01:53:09.120
 für eine andere Firma arbeiten,

01:53:09.120 --> 01:53:09.580
 die entweder

01:53:09.580 --> 01:53:10.940
 kein W3C-Mitglied ist

01:53:10.940 --> 01:53:12.980
 oder halt für eine andere Firma

01:53:12.980 --> 01:53:13.960
 mitarbeiten,

01:53:13.960 --> 01:53:15.040
 die einfach damit

01:53:15.040 --> 01:53:15.900
 überhaupt nichts am Hut hat

01:53:15.900 --> 01:53:16.660
 und man macht das einfach

01:53:16.660 --> 01:53:17.820
 in seiner Freizeit weiter oder so.

01:53:17.820 --> 01:53:18.340
 Das ist, glaube ich,

01:53:18.340 --> 01:53:19.500
 dafür so ein bisschen ein Vehikel.

01:53:19.500 --> 01:53:21.020
 Aber auch da bin ich mir

01:53:21.020 --> 01:53:22.160
 nicht hundertprozentig sicher.

01:53:22.160 --> 01:53:25.200
 Aber ja,

01:53:25.200 --> 01:53:26.040
 das gibt es auch.

01:53:26.040 --> 01:53:28.680
 Ja, das ist...

01:53:28.680 --> 01:53:29.520
 Das ist ja, glaube ich,

01:53:29.520 --> 01:53:30.300
 gar nicht so billig.

01:53:30.300 --> 01:53:32.820
 Das geht nicht einfach dahin,

01:53:32.860 --> 01:53:33.620
 sagst du als Firma,

01:53:33.620 --> 01:53:34.080
 ich bin jetzt,

01:53:34.080 --> 01:53:34.700
 ich möchte jetzt

01:53:34.700 --> 01:53:35.300
 Mitglied sein,

01:53:35.300 --> 01:53:36.300
 dann unterschreibst du das.

01:53:36.300 --> 01:53:38.380
 Nee, es kostet Geld.

01:53:38.380 --> 01:53:41.080
 Aber wenn wir das

01:53:41.080 --> 01:53:42.060
 ordentlich aufgeteilt haben,

01:53:42.060 --> 01:53:42.980
 dann sind ganz viele,

01:53:42.980 --> 01:53:44.680
 ganz viele unserer

01:53:44.680 --> 01:53:45.800
 Elemente,

01:53:45.800 --> 01:53:47.020
 unserer Spezifikationen

01:53:47.020 --> 01:53:48.440
 im WhatWG

01:53:48.440 --> 01:53:50.880
 und da ist das alles einfacher.

01:53:50.880 --> 01:53:52.780
 Da kann nämlich einfach

01:53:52.780 --> 01:53:53.320
 jeder mitmachen.

01:53:53.320 --> 01:53:55.720
 Ich glaube,

01:53:55.720 --> 01:53:56.480
 da musst du auch so ein

01:53:56.480 --> 01:53:58.000
 Contributor-License-Agreement

01:53:58.000 --> 01:53:58.580
 unterschreiben,

01:53:58.580 --> 01:54:00.640
 dass du halt keine Patente hast

01:54:00.640 --> 01:54:00.940
 oder so,

01:54:00.940 --> 01:54:01.500
 aber das kannst du ja

01:54:01.500 --> 01:54:02.920
 als Einzelperson irgendwie

01:54:02.920 --> 01:54:04.100
 dann doch nochmal anders machen.

01:54:06.160 --> 01:54:06.560
 Also,

01:54:06.560 --> 01:54:09.220
 ich schau hier gerade,

01:54:09.220 --> 01:54:09.780
 also es ist,

01:54:09.780 --> 01:54:12.480
 für Non-Profit

01:54:12.480 --> 01:54:14.880
 mit Revenue

01:54:14.880 --> 01:54:19.340
 unter 2,2 Millionen Euro

01:54:19.340 --> 01:54:21.420
 im Jahr

01:54:21.420 --> 01:54:23.340
 kostet es pro Jahr

01:54:23.340 --> 01:54:24.800
 1.950 Euro.

01:54:24.800 --> 01:54:26.080
 Das ist die eine Seite,

01:54:26.080 --> 01:54:26.920
 das ist die eine Richtung

01:54:26.920 --> 01:54:28.580
 und wenn man ganz nach oben geht,

01:54:28.580 --> 01:54:29.980
 Profit Organisation

01:54:29.980 --> 01:54:31.340
 that has annual growth revenue

01:54:31.340 --> 01:54:32.560
 is measured by the most

01:54:32.560 --> 01:54:33.480
 recent audited statement

01:54:33.480 --> 01:54:34.700
 of greater or equal

01:54:34.700 --> 01:54:36.100
 than 800 Millionen.

01:54:36.100 --> 01:54:38.660
 Also so große Firmen.

01:54:38.660 --> 01:54:40.400
 Also Apple oder Google

01:54:40.400 --> 01:54:41.340
 oder so zum Beispiel.

01:54:41.340 --> 01:54:42.620
 Genau,

01:54:42.620 --> 01:54:44.760
 68.000 Euro im Jahr.

01:54:44.760 --> 01:54:48.380
 Aber für die ganze Firma dann,

01:54:48.380 --> 01:54:48.860
 oder was?

01:54:48.860 --> 01:54:50.220
 Für die ganze Firma, ja.

01:54:50.220 --> 01:54:52.400
 Für die ist es aber

01:54:52.400 --> 01:54:53.540
 wahrscheinlich wenig Geld, oder?

01:54:53.540 --> 01:54:55.560
 Also da brauchst du,

01:54:55.560 --> 01:54:56.320
 musst du wahrscheinlich nicht

01:54:56.320 --> 01:54:58.360
 bis zum Finanzchef laufen,

01:54:58.360 --> 01:54:59.540
 um das abgesegnet zu kriegen,

01:54:59.540 --> 01:55:00.180
 kann ich mir vorstellen.

01:55:00.520 --> 01:55:01.780
 solche Firmen funktionieren.

01:55:01.780 --> 01:55:02.880
 Bei uns muss man, glaube ich,

01:55:02.880 --> 01:55:04.160
 ab 200 Euro zum Finanzieren.

01:55:04.160 --> 01:55:04.580
 Das ist ja alles ein bisschen,

01:55:04.580 --> 01:55:05.160
 äh,

01:55:05.160 --> 01:55:06.340
 ein bisschen knapper

01:55:06.340 --> 01:55:07.080
 mit dem Geld.

01:55:07.080 --> 01:55:09.640
 Ach so, ja, genau.

01:55:09.640 --> 01:55:10.840
 Non-Profit, ne?

01:55:10.840 --> 01:55:12.100
 Genau.

01:55:12.100 --> 01:55:14.360
 Aber, äh,

01:55:14.360 --> 01:55:16.720
 ja, ja, das ist,

01:55:16.720 --> 01:55:17.340
 also wir sind,

01:55:17.340 --> 01:55:18.740
 ähm,

01:55:18.740 --> 01:55:19.920
 da kann man auch eine Sendung

01:55:19.920 --> 01:55:20.360
 drüber machen,

01:55:20.360 --> 01:55:21.020
 machen wir aber nicht.

01:55:21.020 --> 01:55:22.560
 Wir sind halt irgendwie

01:55:22.560 --> 01:55:23.900
 700 Leute oder so, ne?

01:55:23.900 --> 01:55:24.580
 Und ich glaube,

01:55:24.580 --> 01:55:26.280
 ich mache immer den Witz,

01:55:26.280 --> 01:55:27.360
 bei Google gibt es mehr

01:55:27.360 --> 01:55:28.180
 Security Engineers

01:55:28.180 --> 01:55:29.560
 als bei Mozilla Angestellte.

01:55:29.800 --> 01:55:30.980
 Also das ist einfach absurd.

01:55:30.980 --> 01:55:32.040
 Das ist einfach absurd.

01:55:32.040 --> 01:55:34.620
 Ähm,

01:55:34.620 --> 01:55:35.600
 weil das sind nämlich

01:55:35.600 --> 01:55:36.620
 irgendwie im Zweistell,

01:55:36.620 --> 01:55:37.160
 also das sind irgendwie,

01:55:37.160 --> 01:55:38.200
 ich weiß nicht,

01:55:38.200 --> 01:55:39.140
 was die richtigen Zahlen sind,

01:55:39.140 --> 01:55:40.060
 aber es sind, ähm,

01:55:40.060 --> 01:55:41.720
 im zweistelligen Tausender-Bereich,

01:55:41.720 --> 01:55:42.080
 glaube ich,

01:55:42.080 --> 01:55:42.760
 zum Beispiel bei Google

01:55:42.760 --> 01:55:43.200
 oder sowas,

01:55:43.200 --> 01:55:43.940
 da für Leute arbeiten.

01:55:43.940 --> 01:55:45.240
 Das ist einfach

01:55:45.240 --> 01:55:45.940
 ein, äh,

01:55:45.940 --> 01:55:46.900
 ein komischer Vergleich.

01:55:46.900 --> 01:55:48.020
 Aber nochmal zurück

01:55:48.020 --> 01:55:48.400
 zum Thema,

01:55:48.400 --> 01:55:49.720
 wenn du zum Non-Profit

01:55:49.720 --> 01:55:51.320
 ohne Revenue gehörst,

01:55:51.320 --> 01:55:52.440
 das heißt quasi dein

01:55:52.440 --> 01:55:53.740
 Hacker-Space

01:55:53.740 --> 01:55:54.320
 oder was auch immer,

01:55:54.320 --> 01:55:55.200
 in welchem Verein du bist,

01:55:55.920 --> 01:55:56.640
 das ist ja auch

01:55:56.640 --> 01:55:57.920
 halbwegs bezahlbar tatsächlich.

01:55:57.920 --> 01:55:59.380
 Aber warum sollte man das wollen?

01:55:59.380 --> 01:56:00.500
 Es gibt auch irgendwie

01:56:00.500 --> 01:56:01.300
 so Community,

01:56:01.300 --> 01:56:05.500
 Community-Contributor-License-Agreement

01:56:05.500 --> 01:56:06.020
 oder so.

01:56:06.020 --> 01:56:07.380
 Kann man sich wahrscheinlich

01:56:07.380 --> 01:56:08.240
 auch durchlesen.

01:56:10.240 --> 01:56:11.540
 Also es ist bezahlbar,

01:56:11.540 --> 01:56:12.480
 aber ich, ich glaube,

01:56:12.480 --> 01:56:13.060
 ich frage mich auch,

01:56:13.060 --> 01:56:14.180
 warum würde ich das wollen?

01:56:14.180 --> 01:56:16.140
 Also für meinen Community-Hacker-Space,

01:56:16.140 --> 01:56:16.920
 ich weiß nicht genau,

01:56:16.920 --> 01:56:18.180
 warum ich da W3C-Mitglied,

01:56:18.180 --> 01:56:18.460
 ich glaube,

01:56:18.460 --> 01:56:19.140
 da würde mir die,

01:56:19.140 --> 01:56:20.500
 die Kommentier-Funktion,

01:56:20.500 --> 01:56:21.560
 die es ja überall gibt,

01:56:21.560 --> 01:56:23.620
 äh, glaube ich, ausreichen.

01:56:23.620 --> 01:56:24.440
 Dafür muss ich jetzt nicht

01:56:24.440 --> 01:56:25.460
 mehr mit Mitglied sein.

01:56:25.460 --> 01:56:25.900
 Ja, ja, das musst du,

01:56:25.900 --> 01:56:26.820
 wenn du das in Fritz-Kohle

01:56:26.820 --> 01:56:27.560
 und Marte umrechnen

01:56:27.560 --> 01:56:28.280
 ist für den Hack-Space,

01:56:28.280 --> 01:56:28.880
 dann ist das,

01:56:28.880 --> 01:56:30.340
 achst du dich sehr unbeliebt.

01:56:30.340 --> 01:56:32.780
 Ja, richtig.

01:56:32.780 --> 01:56:35.420
 Äh, ich habe gerade mal geguckt,

01:56:35.420 --> 01:56:36.260
 Google-Mitarbeiter,

01:56:36.260 --> 01:56:37.060
 das ist sogar noch mehr,

01:56:37.140 --> 01:56:38.900
 äh, wenn ich das richtig sehe,

01:56:38.900 --> 01:56:40.080
 äh, waren es letztes Jahr

01:56:40.080 --> 01:56:41.680
 135.000 Mitarbeiter.

01:56:41.680 --> 01:56:43.280
 Ah, krass.

01:56:43.280 --> 01:56:45.020
 Das ist, äh, einfach nicht.

01:56:45.020 --> 01:56:45.480
 Ja, lag ich mal

01:56:45.480 --> 01:56:46.620
 in der Größenordnung daneben.

01:56:46.620 --> 01:56:48.760
 Das ist, es ist schon,

01:56:48.760 --> 01:56:49.440
 es ist schon enorm,

01:56:49.440 --> 01:56:49.780
 aber die sind,

01:56:49.780 --> 01:56:51.640
 die wachsen auch extrem schnell.

01:56:51.640 --> 01:56:53.200
 Also, wenn man die zahlen,

01:56:53.200 --> 01:56:53.800
 ich habe hier schon

01:56:53.800 --> 01:56:54.960
 eine Statista-Statistik,

01:56:54.960 --> 01:56:55.360
 das waren,

01:56:55.360 --> 01:56:57.300
 2020 waren es 135.000,

01:56:57.300 --> 01:56:59.860
 2018 waren es noch 98.000,

01:56:59.860 --> 01:57:00.180
 das heißt,

01:57:00.180 --> 01:57:01.140
 die haben in zwei Jahren,

01:57:01.140 --> 01:57:04.140
 äh, 37.000 Leute eingestellt.

01:57:04.140 --> 01:57:05.760
 Das,

01:57:05.760 --> 01:57:08.840
 ich weiß gar nicht,

01:57:08.840 --> 01:57:09.320
 wofür.

01:57:09.320 --> 01:57:11.040
 Was machen die denn alles?

01:57:11.040 --> 01:57:12.120
 Das ist halt eine Großstadt,

01:57:12.120 --> 01:57:13.680
 ne, über 100.000 ist eine Großstadt.

01:57:13.680 --> 01:57:15.780
 Ja, es ist irgendwie

01:57:15.780 --> 01:57:17.400
 so halb Karlsruhe gefühlt, ne.

01:57:17.400 --> 01:57:19.200
 Also, das ist schon,

01:57:19.200 --> 01:57:19.960
 schon enorm.

01:57:19.960 --> 01:57:22.640
 Ähm, aber du hast,

01:57:22.640 --> 01:57:23.520
 du hast gerade schon gesagt,

01:57:23.520 --> 01:57:24.460
 ja, man könnte irgendwie

01:57:24.460 --> 01:57:25.820
 eine ganze Sendung füllen

01:57:25.820 --> 01:57:27.700
 über, über Arbeit und so weiter,

01:57:27.700 --> 01:57:29.160
 ähm, aber so ein bisschen

01:57:29.160 --> 01:57:30.620
 würde ich schon gerne noch wissen,

01:57:30.620 --> 01:57:31.620
 wie du das so empfindest,

01:57:31.620 --> 01:57:32.620
 bei Mozilla zu arbeiten.

01:57:32.620 --> 01:57:33.220
 Du bist da schon relativ,

01:57:33.220 --> 01:57:34.400
 ein Punkt haben wir, glaube ich,

01:57:34.400 --> 01:57:36.560
 noch zu diesem Meta-Draft-Gedöns

01:57:36.560 --> 01:57:37.440
 und dann können wir das noch

01:57:37.440 --> 01:57:38.720
 ansprechen vielleicht.

01:57:38.720 --> 01:57:39.360
 Und zwar,

01:57:39.360 --> 01:57:40.480
 wie, wie läuft denn

01:57:40.480 --> 01:57:41.700
 letztendlich die Einigung ab?

01:57:41.700 --> 01:57:42.740
 Also, jeder geht zu seinen Input,

01:57:42.740 --> 01:57:44.020
 aber wer hat denn dann so

01:57:44.020 --> 01:57:45.200
 am Schluss die, die,

01:57:45.200 --> 01:57:47.160
 ja, die Deutungshoheit

01:57:47.160 --> 01:57:48.300
 oder, oder geht's dann Voting

01:57:48.300 --> 01:57:49.340
 oder wie wird denn dann gesagt,

01:57:49.340 --> 01:57:50.500
 okay, wir machen's jetzt doch so?

01:57:52.120 --> 01:57:53.500
 Weil wenn da so viele Leute mitarbeiten,

01:57:53.500 --> 01:57:55.080
 wer, wer, wer entscheidet denn da?

01:57:55.080 --> 01:57:57.460
 Im W3C gibt's grundsätzlich

01:57:57.460 --> 01:57:58.960
 so eine Konsenspolitik,

01:57:58.960 --> 01:58:01.380
 das heißt, du, ähm,

01:58:01.380 --> 01:58:03.200
 sprichst relativ lange über

01:58:03.200 --> 01:58:03.740
 Für und Wider

01:58:03.740 --> 01:58:04.840
 und versuchst,

01:58:04.840 --> 01:58:05.780
 eine Einigung zu finden,

01:58:05.780 --> 01:58:08.280
 ähm, aber wenn tatsächlich,

01:58:08.280 --> 01:58:09.280
 äh, gesagt wird,

01:58:09.280 --> 01:58:10.760
 so jetzt Entscheidung auf den Tisch,

01:58:10.760 --> 01:58:13.240
 dann, äh, heißt es auch tatsächlich

01:58:13.240 --> 01:58:14.500
 Call for Consensus,

01:58:14.500 --> 01:58:15.420
 das heißt, einer sagt,

01:58:15.420 --> 01:58:17.100
 wir machen das jetzt folgendermaßen

01:58:17.100 --> 01:58:19.280
 und jetzt ist der Zeitpunkt,

01:58:19.280 --> 01:58:20.900
 und, ähm,

01:58:20.900 --> 01:58:22.520
 jetzt ist der Zeitpunkt,

01:58:22.520 --> 01:58:23.940
 äh, wo wir das auf den Tisch legen

01:58:23.940 --> 01:58:25.560
 und die Entscheidung muss gefällt werden

01:58:25.560 --> 01:58:25.920
 und ich glaube,

01:58:25.920 --> 01:58:27.060
 so ein Call for Consensus

01:58:27.060 --> 01:58:28.820
 hat normalerweise so zwei Wochen Zeit

01:58:28.820 --> 01:58:29.960
 und bis dahin kann halt jemand sagen,

01:58:29.960 --> 01:58:30.640
 ne, ich bin dagegen

01:58:30.640 --> 01:58:32.720
 und dann muss es alles wieder von neu starten.

01:58:32.720 --> 01:58:34.920
 Das ist so grundsätzlich

01:58:34.920 --> 01:58:37.560
 das W3C-Entscheidungsmodell.

01:58:37.560 --> 01:58:40.240
 Spezifisch jetzt

01:58:40.240 --> 01:58:42.200
 in der Spec

01:58:42.200 --> 01:58:43.420
 gibt es, glaube ich,

01:58:43.420 --> 01:58:45.000
 gab es bis jetzt, glaube ich,

01:58:45.000 --> 01:58:45.820
 noch keine Punkte,

01:58:45.940 --> 01:58:47.460
 wo wir uns wirklich gestritten haben

01:58:47.460 --> 01:58:49.240
 und komplett anderer Meinung waren.

01:58:49.240 --> 01:58:52.840
 Einfach auch, weil, ähm,

01:58:52.840 --> 01:58:53.800
 weil, ich glaube,

01:58:53.800 --> 01:58:54.460
 die komplizierten

01:58:54.460 --> 01:58:55.260
 und die strittigen Sachen,

01:58:55.260 --> 01:58:56.440
 da haben wir uns halt auch einfach

01:58:56.440 --> 01:58:57.600
 immer jemanden von außen gut.

01:58:57.600 --> 01:58:58.380
 Daniel hat gesagt,

01:58:58.380 --> 01:58:59.820
 hm, ich kann mir vorstellen,

01:58:59.820 --> 01:59:00.640
 dass das besser ist

01:59:00.640 --> 01:59:01.200
 und dann habe ich gesagt,

01:59:01.200 --> 01:59:01.780
 ja, ich glaube aber,

01:59:01.780 --> 01:59:02.800
 dass das besser ist

01:59:02.800 --> 01:59:04.100
 und dann haben wir gesagt,

01:59:04.100 --> 01:59:05.000
 haben wir beide gesagt,

01:59:05.000 --> 01:59:06.340
 ja, aber so sicher sind wir uns nicht.

01:59:06.340 --> 01:59:07.660
 Also wir sind, glaube ich,

01:59:07.660 --> 01:59:09.060
 auch beide einfach nicht so das Ego,

01:59:09.060 --> 01:59:10.000
 dass wir halt sagen würden,

01:59:10.000 --> 01:59:11.280
 ich muss das aber so haben,

01:59:11.280 --> 01:59:12.020
 sondern haben wir gesagt,

01:59:12.020 --> 01:59:13.420
 dann lass doch mal rausfinden,

01:59:13.420 --> 01:59:14.360
 wer da Ahnung von hat

01:59:14.360 --> 01:59:15.800
 oder wer schon mal sowas gemacht hat

01:59:15.800 --> 01:59:17.140
 und was irgendwie,

01:59:17.140 --> 01:59:18.320
 ähm,

01:59:18.320 --> 01:59:20.620
 was irgendwie sinnvoll ist.

01:59:20.620 --> 01:59:22.040
 Und, ähm,

01:59:22.040 --> 01:59:23.760
 naja, ein Beispiel,

01:59:23.760 --> 01:59:24.880
 was wir ja vorhin schon mal hatten,

01:59:24.880 --> 01:59:26.680
 dass wir anfangs eine API hatten,

01:59:26.680 --> 01:59:27.420
 die tatsächlich einfach

01:59:27.420 --> 01:59:27.940
 String rein,

01:59:27.940 --> 01:59:28.740
 String raus hatten.

01:59:28.740 --> 01:59:29.980
 Ähm,

01:59:29.980 --> 01:59:31.500
 da waren das nicht,

01:59:31.500 --> 01:59:32.100
 ähm,

01:59:32.100 --> 01:59:34.300
 da waren wir, glaube ich,

01:59:34.300 --> 01:59:35.420
 alle zähneknirschend.

01:59:35.580 --> 01:59:36.420
 Also, ich glaube,

01:59:36.420 --> 01:59:39.340
 ich kann mir jetzt fünf Leute aufzählen,

01:59:39.340 --> 01:59:41.540
 die halt zähneknirschend da gesessen haben

01:59:41.540 --> 01:59:42.100
 und gesagt haben,

01:59:42.100 --> 01:59:43.920
 wir können das nicht gut

01:59:43.920 --> 01:59:45.240
 und wir können das nicht sicher machen,

01:59:45.240 --> 01:59:46.400
 also machen wir es nicht.

01:59:46.400 --> 01:59:48.920
 Aber alle Alternativen sind

01:59:48.920 --> 01:59:49.840
 total

01:59:49.840 --> 01:59:51.980
 unzufriedenstellend

01:59:51.980 --> 01:59:53.820
 von der Perspektive,

01:59:53.820 --> 01:59:54.900
 was wir erwartet hätten,

01:59:54.900 --> 01:59:55.400
 was der,

01:59:55.400 --> 01:59:56.540
 was der Standard kann.

01:59:56.540 --> 01:59:58.640
 Und da, ähm,

01:59:58.860 --> 01:59:59.740
 dieses zähneknirschend

01:59:59.740 --> 02:00:00.400
 hielt auch,

02:00:00.400 --> 02:00:01.720
 ähm,

02:00:01.720 --> 02:00:03.420
 zur Freude unserer Zahnärzte

02:00:03.420 --> 02:00:04.680
 tatsächlich für Wochen an.

02:00:04.680 --> 02:00:06.360
 Also, ähm,

02:00:06.360 --> 02:00:07.500
 wo tatsächlich nochmal

02:00:07.500 --> 02:00:08.620
 rauf eskaliert wurde,

02:00:08.620 --> 02:00:10.260
 also, ähm,

02:00:10.260 --> 02:00:12.340
 wo Daniel das dann

02:00:12.340 --> 02:00:13.520
 in seinem Team besprochen hat

02:00:13.520 --> 02:00:13.900
 und gesagt wurde,

02:00:13.900 --> 02:00:14.620
 das ist aber ärgerlich,

02:00:14.620 --> 02:00:15.300
 das können wir nicht machen,

02:00:15.300 --> 02:00:16.380
 das ist doch eine doofe API,

02:00:16.380 --> 02:00:17.820
 das will auch keiner benutzen.

02:00:17.820 --> 02:00:19.120
 Und wo ich dann noch irgendwie

02:00:19.120 --> 02:00:20.900
 dreimal, ähm,

02:00:20.900 --> 02:00:22.680
 internen Follow-Up-Meetings

02:00:22.680 --> 02:00:23.580
 gehabt habe mit,

02:00:23.580 --> 02:00:24.160
 mit Leuten,

02:00:24.160 --> 02:00:25.280
 die am HTML-Standard

02:00:25.280 --> 02:00:27.000
 schreiben und gesagt haben,

02:00:27.000 --> 02:00:28.560
 aber muss das denn sein

02:00:28.560 --> 02:00:29.640
 und können wir nicht irgendwie

02:00:29.640 --> 02:00:30.720
 und wie wäre das denn?

02:00:30.720 --> 02:00:33.040
 Und wir hatten viele,

02:00:33.040 --> 02:00:34.140
 viele Ideen,

02:00:34.140 --> 02:00:35.460
 aber wir mussten die im Endeffekt

02:00:35.460 --> 02:00:36.200
 alle verworfen

02:00:36.200 --> 02:00:36.920
 und sind jetzt da,

02:00:36.920 --> 02:00:37.460
 wo wir sind.

02:00:37.460 --> 02:00:38.980
 Ähm,

02:00:38.980 --> 02:00:41.380
 also,

02:00:41.380 --> 02:00:43.460
 wie soll ich sagen?

02:00:43.460 --> 02:00:44.520
 Im Endeffekt haben wir uns

02:00:44.520 --> 02:00:46.040
 immer irgendwie gut geeinigt

02:00:46.040 --> 02:00:48.000
 und ich glaube,

02:00:48.000 --> 02:00:48.600
 äh,

02:00:48.600 --> 02:00:49.760
 das ist jetzt,

02:00:49.760 --> 02:00:50.260
 äh,

02:00:50.260 --> 02:00:51.960
 bis jetzt nie wirklich hart gewesen.

02:00:51.960 --> 02:00:53.260
 Ach, da kann ich übrigens

02:00:53.260 --> 02:00:53.600
 nochmal,

02:00:53.600 --> 02:00:54.940
 nochmal ein Beispiel zu geben,

02:00:54.940 --> 02:00:56.320
 was wir übrigens gedacht hatten.

02:00:56.320 --> 02:00:57.040
 Ich hatte ja gesagt,

02:00:57.040 --> 02:00:57.720
 wir können nicht,

02:00:58.260 --> 02:00:58.840
 wir können nicht

02:00:58.840 --> 02:00:59.840
 ein Kontext-Element

02:00:59.840 --> 02:01:00.920
 uns aus dem Hut zaubern

02:01:00.920 --> 02:01:01.260
 und sagen,

02:01:01.260 --> 02:01:02.340
 das wollte der,

02:01:02.340 --> 02:01:03.540
 ähm,

02:01:03.540 --> 02:01:05.100
 Entwickler bestimmt

02:01:05.100 --> 02:01:06.400
 und dann machen wir das

02:01:06.400 --> 02:01:07.400
 einfach implizit

02:01:07.400 --> 02:01:09.600
 und, äh,

02:01:09.600 --> 02:01:10.460
 wenn der das dann später

02:01:10.460 --> 02:01:11.420
 als was anderes benutzt,

02:01:11.420 --> 02:01:12.040
 dann ist das vielleicht

02:01:12.040 --> 02:01:12.860
 auch sein Problem.

02:01:12.860 --> 02:01:14.260
 Ähm,

02:01:14.260 --> 02:01:15.360
 das wollen wir ja nicht,

02:01:15.360 --> 02:01:15.500
 ne,

02:01:15.500 --> 02:01:16.160
 wir wollen das ja irgendwie

02:01:16.160 --> 02:01:17.080
 zu unserem Problem machen,

02:01:17.080 --> 02:01:17.960
 um das ordentlich zu lösen.

02:01:18.320 --> 02:01:19.620
 Da habe ich relativ lange

02:01:19.620 --> 02:01:21.300
 auf die Spezifikationen

02:01:21.300 --> 02:01:22.440
 vom Template-Element

02:01:22.440 --> 02:01:23.280
 geglotzt

02:01:23.280 --> 02:01:24.220
 und gesagt,

02:01:24.220 --> 02:01:25.400
 aber können wir es nicht

02:01:25.400 --> 02:01:25.780
 parsen,

02:01:25.780 --> 02:01:26.380
 als wäre es in einem

02:01:26.380 --> 02:01:27.120
 Template-Element?

02:01:27.120 --> 02:01:28.580
 Das passt doch,

02:01:28.580 --> 02:01:30.140
 das ist es doch genau eigentlich.

02:01:30.140 --> 02:01:31.860
 Ähm,

02:01:31.860 --> 02:01:33.060
 stellt sich aber raus,

02:01:33.060 --> 02:01:34.580
 dass das Template-Element

02:01:34.580 --> 02:01:35.860
 nur HTML kann

02:01:35.860 --> 02:01:36.940
 und kein SVG

02:01:36.940 --> 02:01:37.560
 und MathML.

02:01:37.560 --> 02:01:39.680
 Es kann SVG

02:01:39.680 --> 02:01:41.400
 innerhalb eines SVG-Elements,

02:01:41.600 --> 02:01:42.420
 aber es kann nicht

02:01:42.420 --> 02:01:44.440
 SVG-Elemente ohne

02:01:44.440 --> 02:01:46.020
 das SVG,

02:01:46.020 --> 02:01:48.240
 also Elemente,

02:01:48.240 --> 02:01:49.860
 die zu SVG-Namespace gehören,

02:01:49.860 --> 02:01:51.720
 ohne drumherum ein SVG.

02:01:51.720 --> 02:01:52.760
 Das kann das Template-Element

02:01:52.760 --> 02:01:53.220
 gar nicht.

02:01:53.220 --> 02:01:55.220
 Und das müssen wir halt

02:01:55.220 --> 02:01:56.080
 im Zweifelsfall können

02:01:56.080 --> 02:01:57.220
 in der Sanitizer-API.

02:01:57.220 --> 02:01:58.160
 Hm.

02:01:58.160 --> 02:01:59.260
 Ne,

02:01:59.260 --> 02:02:00.260
 also es kann ja sein,

02:02:00.260 --> 02:02:01.640
 dass du irgendein Element

02:02:01.640 --> 02:02:02.460
 ganz tief unten

02:02:02.460 --> 02:02:03.640
 in einem SVG-Baum hast

02:02:03.640 --> 02:02:05.060
 und da drinnen

02:02:05.060 --> 02:02:06.560
 dafür etwas sanitizen willst.

02:02:06.560 --> 02:02:08.240
 Und das müssen wir halt

02:02:08.240 --> 02:02:08.680
 unterstützen,

02:02:08.680 --> 02:02:09.360
 weil das ist halt

02:02:09.360 --> 02:02:10.080
 Teil von HTML.

02:02:11.600 --> 02:02:12.920
 Und das Template-Element

02:02:12.920 --> 02:02:13.680
 kann das gar nicht.

02:02:13.680 --> 02:02:15.180
 Und dann habe ich gesagt,

02:02:15.180 --> 02:02:16.040
 wenn die das nicht können,

02:02:16.040 --> 02:02:17.160
 warum müssen wir das denn können?

02:02:17.160 --> 02:02:18.620
 Und dann haben wir halt

02:02:18.620 --> 02:02:19.560
 tatsächlich alle Leute,

02:02:19.560 --> 02:02:20.540
 die entweder

02:02:20.540 --> 02:02:21.400
 am Template-Element

02:02:21.400 --> 02:02:22.200
 gearbeitet haben

02:02:22.200 --> 02:02:22.560
 oder

02:02:22.560 --> 02:02:24.640
 halt

02:02:24.640 --> 02:02:26.540
 HTML-Spec-Leute sind,

02:02:26.540 --> 02:02:27.200
 die haben halt gesagt,

02:02:27.200 --> 02:02:28.000
 ja, war ein Fehler.

02:02:28.000 --> 02:02:29.400
 Aber können wir halt

02:02:29.400 --> 02:02:30.000
 nicht wegmachen,

02:02:30.000 --> 02:02:31.220
 weil ist jetzt so.

02:02:31.220 --> 02:02:32.900
 Ist jetzt so,

02:02:32.900 --> 02:02:33.820
 haben wir einen Fehler gemacht,

02:02:33.820 --> 02:02:34.500
 müssen wir jetzt

02:02:34.500 --> 02:02:35.700
 auf alle Zeit ausbaden.

02:02:35.700 --> 02:02:37.520
 Wollen wir nicht mehr.

02:02:37.520 --> 02:02:38.640
 Darfst du nicht.

02:02:38.640 --> 02:02:40.100
 Und dann wieder

02:02:40.100 --> 02:02:40.720
 Zähne knirschen,

02:02:40.720 --> 02:02:41.480
 Zähne knirschen.

02:02:41.600 --> 02:02:42.320
 Also,

02:02:42.320 --> 02:02:44.420
 ja,

02:02:44.420 --> 02:02:44.940
 ist schwierig.

02:02:44.940 --> 02:02:45.540
 Ist teilweise

02:02:45.540 --> 02:02:46.260
 wirklich schwierig,

02:02:46.260 --> 02:02:47.100
 aber bis jetzt

02:02:47.100 --> 02:02:48.580
 ohne Meckern,

02:02:48.580 --> 02:02:49.620
 ohne böse E-Mails

02:02:49.620 --> 02:02:50.460
 und ohne Anschreien.

02:02:50.460 --> 02:02:50.740
 Also,

02:02:50.740 --> 02:02:52.120
 alles irgendwie

02:02:52.120 --> 02:02:52.800
 dann auch okay,

02:02:52.800 --> 02:02:54.240
 würde ich sagen.

02:02:54.240 --> 02:02:54.800
 Ja.

02:02:54.800 --> 02:02:56.320
 Beantwortet das die Frage?

02:02:56.320 --> 02:02:56.580
 Ja,

02:02:56.580 --> 02:02:57.180
 auf jeden Fall.

02:02:57.180 --> 02:02:57.620
 Okay,

02:02:57.620 --> 02:02:58.200
 gut.

02:02:58.200 --> 02:02:58.680
 Cool.

02:02:58.680 --> 02:02:59.500
 Bin sehr lange

02:02:59.500 --> 02:03:00.520
 ausgeholt,

02:03:00.520 --> 02:03:00.900
 glaube ich.

02:03:00.900 --> 02:03:01.640
 Dann haben wir

02:03:01.640 --> 02:03:03.480
 jetzt das eigentliche Thema

02:03:03.480 --> 02:03:03.740
 durch.

02:03:03.740 --> 02:03:04.400
 Jetzt darfst du

02:03:04.400 --> 02:03:05.160
 noch ein bisschen

02:03:05.160 --> 02:03:05.240
 nachbohren.

02:03:05.240 --> 02:03:05.920
 Darf ich mal eine Frage

02:03:05.920 --> 02:03:06.400
 noch stellen?

02:03:06.980 --> 02:03:08.080
 Wenn du mich so herrlich

02:03:08.080 --> 02:03:08.680
 unterbrochen hast,

02:03:08.680 --> 02:03:09.240
 da kriegen wir wieder

02:03:09.240 --> 02:03:10.180
 Ärger in den Kommentaren.

02:03:10.180 --> 02:03:11.060
 Du kriegst wieder Ärger

02:03:11.060 --> 02:03:11.920
 in den Kommentaren,

02:03:11.920 --> 02:03:13.420
 dass du mich nicht

02:03:13.420 --> 02:03:14.780
 unterbrechen sollst.

02:03:14.780 --> 02:03:15.400
 Genau,

02:03:15.400 --> 02:03:17.160
 was mich auf jeden Fall

02:03:17.160 --> 02:03:17.920
 immer interessiert ist,

02:03:17.920 --> 02:03:18.920
 ich finde Mozilla

02:03:18.920 --> 02:03:20.720
 eine relativ interessante Firma,

02:03:20.720 --> 02:03:21.460
 fand ich schon immer,

02:03:21.460 --> 02:03:22.040
 weil das irgendwie

02:03:22.040 --> 02:03:23.200
 ein ganz besonderes Konzept ist,

02:03:23.200 --> 02:03:23.960
 wie es funktioniert

02:03:23.960 --> 02:03:26.140
 und so ein Non-Profit

02:03:26.140 --> 02:03:27.760
 und auch die Missionen

02:03:27.760 --> 02:03:28.260
 hinter Mozilla

02:03:28.260 --> 02:03:28.940
 finde ich interessant.

02:03:28.940 --> 02:03:30.060
 Deswegen wollte ich dich

02:03:30.060 --> 02:03:30.640
 einfach mal fragen,

02:03:30.640 --> 02:03:31.520
 wie du das so empfindest,

02:03:31.520 --> 02:03:32.600
 bei Mozilla zu arbeiten.

02:03:32.600 --> 02:03:33.380
 Da gab es ja auch schon

02:03:33.380 --> 02:03:34.220
 das eine oder andere

02:03:34.220 --> 02:03:35.420
 Up and Down

02:03:35.420 --> 02:03:36.500
 in den letzten Jahren,

02:03:36.500 --> 02:03:37.060
 was so ein bisschen

02:03:37.060 --> 02:03:38.380
 durch die Medien gespült wurde.

02:03:38.380 --> 02:03:40.000
 Wie lange bist du eigentlich

02:03:40.000 --> 02:03:40.760
 da schon dabei

02:03:40.760 --> 02:03:42.680
 und was für ein Gefühl

02:03:42.680 --> 02:03:43.480
 hast du dabei?

02:03:43.480 --> 02:03:44.380
 Oder hast du irgendwie,

02:03:44.380 --> 02:03:45.420
 wenn du das vergleichen würdest

02:03:45.420 --> 02:03:46.760
 mit anderen Arbeitgebern vielleicht,

02:03:46.760 --> 02:03:48.300
 also würde mich einfach mal

02:03:48.300 --> 02:03:48.680
 interessieren,

02:03:48.680 --> 02:03:49.140
 was du da,

02:03:49.140 --> 02:03:50.760
 was du darüber denkst.

02:03:50.760 --> 02:03:50.940
 Ja,

02:03:50.940 --> 02:03:53.160
 also das ist halt auch

02:03:53.160 --> 02:03:54.000
 eine schwierige Antwort.

02:03:54.000 --> 02:03:55.420
 Also erstens,

02:03:55.420 --> 02:03:57.240
 mich hat letzte Woche

02:03:57.240 --> 02:03:57.960
 jemand angeschrieben,

02:03:57.960 --> 02:03:59.060
 LinkedIn behauptet,

02:03:59.060 --> 02:03:59.640
 ich wäre jetzt

02:03:59.640 --> 02:04:00.820
 zehn Jahre bei Mozilla.

02:04:00.820 --> 02:04:04.000
 Das bezieht mein Praktikum

02:04:04.000 --> 02:04:04.880
 und meine lange Pause

02:04:04.880 --> 02:04:05.680
 nach dem Praktikum

02:04:05.680 --> 02:04:07.660
 und meine Vollzeiteinstellung.

02:04:07.660 --> 02:04:09.060
 Irgendwie rechnet das komisch,

02:04:09.060 --> 02:04:10.500
 aber wenn man möchte,

02:04:10.500 --> 02:04:11.000
 könnte man sagen,

02:04:11.000 --> 02:04:11.420
 zehn Jahre,

02:04:11.420 --> 02:04:12.700
 das klingt ziemlich gruselig.

02:04:12.700 --> 02:04:14.440
 Von daher gab es

02:04:14.440 --> 02:04:15.940
 ziemlich viel Auf und Ab natürlich.

02:04:15.940 --> 02:04:17.660
 Ich habe leider

02:04:17.660 --> 02:04:19.020
 keinen richtig guten Vergleich,

02:04:19.020 --> 02:04:19.900
 weil ich hatte

02:04:19.900 --> 02:04:21.780
 einen Studijob

02:04:21.780 --> 02:04:22.360
 bei einer

02:04:22.360 --> 02:04:24.920
 bei einem relativ kleinen,

02:04:24.920 --> 02:04:25.300
 ich glaube,

02:04:25.300 --> 02:04:25.580
 drei,

02:04:25.580 --> 02:04:26.440
 vier Personen

02:04:26.440 --> 02:04:28.560
 Webentwickler-Bude

02:04:28.560 --> 02:04:29.860
 während meiner Studienzeit,

02:04:29.860 --> 02:04:31.360
 bis ich dann,

02:04:31.360 --> 02:04:32.120
 ich glaube,

02:04:32.120 --> 02:04:33.020
 nach einem halben Jahr

02:04:33.020 --> 02:04:33.580
 oder einem Jahr

02:04:33.580 --> 02:04:34.580
 oder so gewechselt habe

02:04:34.580 --> 02:04:36.360
 zum Lehrstuhl,

02:04:36.360 --> 02:04:37.200
 weil ich halt konkret

02:04:37.200 --> 02:04:38.540
 irgendwie was an Forschung

02:04:38.540 --> 02:04:39.100
 und Websicherheit

02:04:39.100 --> 02:04:39.640
 machen wollte.

02:04:39.640 --> 02:04:41.620
 Und als ich mit der Uni

02:04:41.620 --> 02:04:42.180
 fertig war,

02:04:42.180 --> 02:04:42.980
 vor zehn Jahren,

02:04:42.980 --> 02:04:44.400
 nein,

02:04:44.400 --> 02:04:44.840
 nicht ganz,

02:04:44.840 --> 02:04:47.180
 neun oder so,

02:04:47.180 --> 02:04:48.080
 neuneinhalb,

02:04:50.080 --> 02:04:51.460
 habe ich direkt bei Mozilla

02:04:51.460 --> 02:04:51.840
 angefangen.

02:04:51.840 --> 02:04:53.120
 Von daher ist der Vergleich

02:04:53.120 --> 02:04:54.680
 schwierig bis einfach

02:04:54.680 --> 02:04:55.360
 nicht vorhanden.

02:04:55.360 --> 02:04:58.860
 Ich bin aber extrem gerne

02:04:58.860 --> 02:04:59.460
 bei Mozilla,

02:04:59.460 --> 02:05:00.160
 muss ich sagen.

02:05:00.160 --> 02:05:01.580
 Also es ist natürlich

02:05:01.580 --> 02:05:03.680
 manches schwierig,

02:05:03.680 --> 02:05:05.700
 vor allem aufgrund der Tatsache,

02:05:05.700 --> 02:05:06.400
 wie ich gesagt habe,

02:05:06.400 --> 02:05:07.320
 wir sind irgendwie

02:05:07.320 --> 02:05:08.120
 700 Leute

02:05:08.120 --> 02:05:09.120
 und wenn man es nicht selber

02:05:09.120 --> 02:05:09.300
 macht,

02:05:09.300 --> 02:05:10.200
 dann macht es kein anderer.

02:05:10.200 --> 02:05:12.640
 Ein Beispiel ist zum Beispiel

02:05:12.640 --> 02:05:13.220
 dieser,

02:05:13.220 --> 02:05:14.520
 dieser Blockpost,

02:05:14.520 --> 02:05:15.540
 das Sanitizer-API

02:05:15.540 --> 02:05:16.260
 von den Google

02:05:16.260 --> 02:05:18.220
 Developer Advocates,

02:05:18.300 --> 02:05:19.200
 der ist mehr oder weniger,

02:05:19.200 --> 02:05:19.780
 ich weiß nicht,

02:05:19.780 --> 02:05:20.840
 wie viel Arbeit da

02:05:20.840 --> 02:05:23.320
 reingeflossen ist von Daniel,

02:05:23.320 --> 02:05:24.120
 aber ich glaube,

02:05:24.120 --> 02:05:26.120
 nicht so super viel.

02:05:26.120 --> 02:05:27.660
 Das passiert halt einfach

02:05:27.660 --> 02:05:28.460
 in großen Firmen.

02:05:28.460 --> 02:05:29.220
 Das ist natürlich

02:05:29.220 --> 02:05:30.160
 bei Mozilla anders.

02:05:30.160 --> 02:05:31.940
 Entweder ich gehe halt

02:05:31.940 --> 02:05:32.880
 in irgendwelche Podcasts

02:05:32.880 --> 02:05:34.520
 und begeister so lange Leute

02:05:34.520 --> 02:05:36.100
 an meinem Freitagabend,

02:05:36.100 --> 02:05:37.580
 dass das halt auch rausfällt

02:05:37.580 --> 02:05:38.100
 oder ich muss halt

02:05:38.100 --> 02:05:39.000
 den Blogpost selber schreiben,

02:05:39.000 --> 02:05:39.820
 sonst schreibt den keiner.

02:05:39.820 --> 02:05:43.280
 Das ist natürlich schon

02:05:43.280 --> 02:05:44.400
 manchmal komisch so,

02:05:44.400 --> 02:05:45.680
 insbesondere wenn man

02:05:45.680 --> 02:05:46.360
 in Gesprächen,

02:05:46.360 --> 02:05:47.220
 manchmal ist es halt auch

02:05:47.220 --> 02:05:48.220
 witzig auf Konferenzen

02:05:48.220 --> 02:05:48.640
 und wird dann gesagt,

02:05:48.640 --> 02:05:49.280
 ja, aber ihr

02:05:49.280 --> 02:05:51.100
 macht jetzt irgendwie

02:05:51.100 --> 02:05:52.340
 Werbung auf eurer Startseite

02:05:52.340 --> 02:05:52.760
 oder so

02:05:52.760 --> 02:05:54.380
 und dann muss man sich

02:05:54.380 --> 02:05:55.200
 immer rechtfertigen

02:05:55.200 --> 02:05:56.200
 oder dann wird halt gesagt,

02:05:56.200 --> 02:05:57.160
 warum unterstützt ihr das nicht?

02:05:57.160 --> 02:05:58.320
 Google macht das schon seit Jahren

02:05:58.320 --> 02:05:58.980
 oder was auch immer.

02:05:58.980 --> 02:05:59.740
 Also man kriegt ja manchmal

02:05:59.740 --> 02:06:00.360
 so Feedback

02:06:00.360 --> 02:06:01.860
 und dann finde ich das komisch,

02:06:01.860 --> 02:06:03.000
 wenn man halt verglichen wird

02:06:03.000 --> 02:06:03.520
 mit so einem

02:06:03.520 --> 02:06:05.040
 Non-Profit,

02:06:05.040 --> 02:06:05.920
 also die Übersetzung

02:06:05.920 --> 02:06:06.360
 über das Deutsche,

02:06:06.360 --> 02:06:07.080
 es ist halt einfach

02:06:07.080 --> 02:06:08.100
 ein eingetragener Verein

02:06:08.100 --> 02:06:08.680
 in Amerika

02:06:08.680 --> 02:06:10.760
 und man wird halt verglichen

02:06:10.760 --> 02:06:12.520
 mit 130.000 Leuten

02:06:12.520 --> 02:06:15.160
 Technologie-Imperium.

02:06:15.740 --> 02:06:16.740
 Das ist halt manchmal schon

02:06:16.740 --> 02:06:17.560
 sehr, sehr absurd.

02:06:17.560 --> 02:06:20.940
 Ich mache meine Arbeit

02:06:20.940 --> 02:06:21.780
 aber nach wie vor

02:06:21.780 --> 02:06:22.940
 extrem gerne,

02:06:22.940 --> 02:06:24.540
 weil es halt

02:06:24.540 --> 02:06:26.280
 gleichzeitig auch

02:06:26.280 --> 02:06:27.480
 so viel Freiheit bietet.

02:06:27.480 --> 02:06:28.520
 Also auf meinem,

02:06:28.520 --> 02:06:30.660
 auf meiner Visitenkarte

02:06:30.660 --> 02:06:31.820
 steht Security Engineer,

02:06:31.820 --> 02:06:32.900
 aber wenn ich halt will,

02:06:32.900 --> 02:06:34.140
 dann bin ich halt zum Beispiel

02:06:34.140 --> 02:06:35.060
 heute Freitagabend

02:06:35.060 --> 02:06:35.980
 Developer Advocate

02:06:35.980 --> 02:06:36.520
 oder

02:06:36.520 --> 02:06:38.580
 oder sonst was

02:06:38.580 --> 02:06:39.420
 und das ist halt irgendwie

02:06:39.420 --> 02:06:40.640
 auch so ein bisschen cool,

02:06:40.640 --> 02:06:41.720
 auch wenn das so ein bisschen,

02:06:41.720 --> 02:06:44.260
 ja wie soll ich sagen,

02:06:44.260 --> 02:06:44.560
 so ein bisschen

02:06:44.560 --> 02:06:45.500
 hemmsärmlich ist

02:06:45.500 --> 02:06:46.200
 und so ein bisschen,

02:06:46.200 --> 02:06:50.020
 ja nicht so corporate

02:06:50.020 --> 02:06:50.680
 oder so,

02:06:50.680 --> 02:06:51.900
 wie soll man sagen,

02:06:51.900 --> 02:06:53.320
 ich weiß,

02:06:53.320 --> 02:06:54.920
 mir fällt keine gute

02:06:54.920 --> 02:06:56.940
 Beschreibung ein.

02:06:56.940 --> 02:06:58.320
 Also manchmal ist es,

02:06:58.320 --> 02:07:01.280
 kommt man sich sehr klein

02:07:01.280 --> 02:07:02.140
 und ich will gar nicht

02:07:02.140 --> 02:07:02.960
 amateurhaft sagen,

02:07:02.960 --> 02:07:04.640
 aber manchmal wirkt es

02:07:04.640 --> 02:07:05.780
 irgendwie auf einen selber so

02:07:05.780 --> 02:07:07.160
 und das ist halt

02:07:07.160 --> 02:07:08.300
 komisch.

02:07:08.300 --> 02:07:10.500
 Klingt für mich aber

02:07:10.500 --> 02:07:11.560
 eigentlich ziemlich cool,

02:07:11.560 --> 02:07:13.280
 also ehrlich gesagt,

02:07:13.280 --> 02:07:14.940
 weil es klingt so nach,

02:07:14.940 --> 02:07:16.680
 sei, was du sein willst,

02:07:16.680 --> 02:07:18.820
 also mach einfach so

02:07:18.820 --> 02:07:19.600
 und das finde ich eigentlich,

02:07:19.600 --> 02:07:20.360
 definitiv.

02:07:20.360 --> 02:07:21.480
 Das wirkt super.

02:07:21.480 --> 02:07:22.820
 Definitiv

02:07:22.820 --> 02:07:23.620
 und da wollte ich jetzt

02:07:23.620 --> 02:07:24.360
 irgendwie zukommen,

02:07:24.360 --> 02:07:29.020
 was ich persönlich

02:07:29.020 --> 02:07:29.620
 für mich sehr,

02:07:29.620 --> 02:07:30.620
 sehr toll finde

02:07:30.620 --> 02:07:31.360
 und was zu mir

02:07:31.360 --> 02:07:32.200
 als Person passt,

02:07:32.200 --> 02:07:33.260
 ich bin immer irgendwie

02:07:33.260 --> 02:07:34.440
 so ein bisschen Idealist

02:07:34.440 --> 02:07:35.100
 und ich finde es

02:07:35.100 --> 02:07:36.200
 unfassbar gut

02:07:36.200 --> 02:07:37.260
 für eine Firma zu arbeiten,

02:07:37.260 --> 02:07:37.940
 wo ich weiß,

02:07:37.940 --> 02:07:39.300
 am Ende des Jahres

02:07:39.300 --> 02:07:41.220
 sagt dich der CFO,

02:07:41.220 --> 02:07:42.800
 okay und jetzt müssen wir

02:07:42.800 --> 02:07:43.540
 unseren Aktionären

02:07:43.540 --> 02:07:44.340
 Geld ausschütten

02:07:44.340 --> 02:07:44.920
 und wenn wir das nicht

02:07:44.920 --> 02:07:45.540
 geschafft haben,

02:07:45.540 --> 02:07:46.100
 dann sind wir keine

02:07:46.100 --> 02:07:47.140
 erfolgreiche Firma gewesen,

02:07:47.140 --> 02:07:47.920
 was sagt denn gerade

02:07:47.920 --> 02:07:49.380
 der Aktienindex

02:07:49.380 --> 02:07:50.040
 oder was auch immer,

02:07:50.040 --> 02:07:53.180
 sondern es gibt natürlich

02:07:53.180 --> 02:07:54.280
 irgendwie eine Führungsebene

02:07:54.280 --> 02:07:54.900
 bei uns in der Firma

02:07:54.900 --> 02:07:55.380
 und die verdienen

02:07:55.380 --> 02:07:55.900
 halt auch Geld,

02:07:55.900 --> 02:07:57.080
 aber die machen ja auch

02:07:57.080 --> 02:07:58.060
 Arbeit für ihr Geld

02:07:58.060 --> 02:07:59.720
 und alles andere geht halt

02:07:59.720 --> 02:08:00.460
 nicht in die Tasche

02:08:00.460 --> 02:08:02.120
 von dem Besitzer

02:08:02.120 --> 02:08:03.540
 oder dem Gründer

02:08:03.540 --> 02:08:05.260
 oder den Aktionären

02:08:05.260 --> 02:08:05.760
 oder so,

02:08:05.760 --> 02:08:07.500
 sondern das Geld

02:08:07.500 --> 02:08:08.100
 wird dann halt

02:08:08.100 --> 02:08:10.720
 wieder reinvestiert

02:08:10.720 --> 02:08:11.820
 oder andersrum,

02:08:11.820 --> 02:08:12.520
 es muss halt nicht

02:08:12.520 --> 02:08:12.980
 so viel Geld

02:08:12.980 --> 02:08:14.340
 verdient werden,

02:08:14.340 --> 02:08:15.040
 also wir müssen

02:08:15.040 --> 02:08:15.660
 nicht so viel Geld

02:08:15.660 --> 02:08:16.100
 verdienen,

02:08:16.100 --> 02:08:17.360
 dass wir

02:08:19.160 --> 02:08:19.620
 keine Ahnung,

02:08:19.620 --> 02:08:20.420
 irgendwas entwickeln,

02:08:20.420 --> 02:08:21.660
 was halt nachher Scheit hat

02:08:21.660 --> 02:08:23.000
 oder dass wir

02:08:23.000 --> 02:08:23.860
 irgendjemanden reich

02:08:23.860 --> 02:08:24.340
 machen müssen,

02:08:24.340 --> 02:08:25.120
 sondern wir brauchen

02:08:25.120 --> 02:08:25.760
 halt das Geld

02:08:25.760 --> 02:08:27.200
 hauptsächlich nur,

02:08:27.200 --> 02:08:29.480
 um diesen Browser

02:08:29.480 --> 02:08:30.000
 zu bauen

02:08:30.000 --> 02:08:31.220
 und das ist halt

02:08:31.220 --> 02:08:32.100
 irgendwie auch cool,

02:08:32.100 --> 02:08:33.780
 dass ich halt sagen kann,

02:08:33.780 --> 02:08:36.120
 ja vielleicht gibt es

02:08:36.120 --> 02:08:36.800
 jetzt ein Feature,

02:08:36.800 --> 02:08:37.600
 wo irgendwie

02:08:37.600 --> 02:08:39.020
 etwas ist,

02:08:39.020 --> 02:08:40.420
 was jemand

02:08:40.420 --> 02:08:41.080
 auf der Konferenz

02:08:41.080 --> 02:08:41.480
 mit ihrem Kopf

02:08:41.480 --> 02:08:41.780
 und sagt,

02:08:41.780 --> 02:08:42.720
 ey schaltet da aber

02:08:42.720 --> 02:08:43.400
 jetzt Werbung,

02:08:43.400 --> 02:08:44.920
 vielleicht sind es

02:08:44.920 --> 02:08:45.620
 aber auch nur

02:08:45.620 --> 02:08:46.560
 empfohlene

02:08:46.560 --> 02:08:47.600
 Artikel,

02:08:47.600 --> 02:08:48.500
 auf die du klicken kannst,

02:08:48.500 --> 02:08:49.080
 weil die vielleicht

02:08:49.080 --> 02:08:50.040
 nett sind zu lesen

02:08:50.040 --> 02:08:51.560
 und wenn du die nicht

02:08:51.560 --> 02:08:51.720
 willst,

02:08:51.720 --> 02:08:52.240
 dann machst du die

02:08:52.240 --> 02:08:52.740
 halt aus,

02:08:52.740 --> 02:08:55.140
 aber vielleicht ist es

02:08:55.140 --> 02:08:55.700
 auch cooler,

02:08:55.700 --> 02:08:57.140
 wenn du draufklicken

02:08:57.140 --> 02:08:58.680
 musst und dann

02:08:58.680 --> 02:08:59.440
 verdienen wir Geld,

02:08:59.440 --> 02:09:00.820
 als wenn du durchs

02:09:00.820 --> 02:09:01.640
 Web surfst und

02:09:01.640 --> 02:09:02.460
 irgendjemand verdient

02:09:02.460 --> 02:09:03.260
 Geld, weil ständig

02:09:03.260 --> 02:09:04.320
 deine Daten abgelutscht

02:09:04.320 --> 02:09:06.620
 werden und der Browser

02:09:06.620 --> 02:09:07.840
 alles mitsendet,

02:09:07.840 --> 02:09:08.520
 also ich will jetzt

02:09:08.520 --> 02:09:09.160
 auch gar keine

02:09:09.160 --> 02:09:10.880
 lange Diskussion

02:09:10.880 --> 02:09:11.880
 starten und

02:09:11.880 --> 02:09:12.960
 es ist übrigens

02:09:12.960 --> 02:09:14.080
 eine persönliche

02:09:14.080 --> 02:09:14.720
 Meinung und so

02:09:14.720 --> 02:09:15.000
 weiter.

02:09:15.000 --> 02:09:19.580
 Aber ja,

02:09:19.580 --> 02:09:20.280
 da hört man halt

02:09:20.280 --> 02:09:21.060
 relativ viel

02:09:21.060 --> 02:09:22.140
 und manchmal finde ich

02:09:22.140 --> 02:09:22.580
 das sehr, sehr

02:09:22.580 --> 02:09:22.960
 schwierig,

02:09:22.960 --> 02:09:23.760
 darüber reden zu

02:09:23.760 --> 02:09:24.840
 müssen und ich

02:09:24.840 --> 02:09:25.600
 versuche es jetzt

02:09:25.600 --> 02:09:26.880
 einigermaßen

02:09:26.880 --> 02:09:28.580
 klar zu machen,

02:09:28.580 --> 02:09:29.080
 dass es meine

02:09:29.080 --> 02:09:29.800
 persönliche Meinung

02:09:29.800 --> 02:09:31.000
 ist und ich

02:09:31.000 --> 02:09:31.480
 finde es halt

02:09:31.480 --> 02:09:31.880
 cool,

02:09:31.880 --> 02:09:33.260
 dass es halt

02:09:33.260 --> 02:09:33.840
 nicht darum geht,

02:09:33.840 --> 02:09:34.300
 irgendjemanden

02:09:34.300 --> 02:09:34.840
 reich zu machen,

02:09:34.840 --> 02:09:35.340
 sondern dass

02:09:35.340 --> 02:09:36.320
 alles Geld,

02:09:36.320 --> 02:09:37.200
 was wir verdienen,

02:09:37.200 --> 02:09:38.940
 halt an die

02:09:38.940 --> 02:09:39.480
 Leute, die hier

02:09:39.480 --> 02:09:39.780
 arbeiten,

02:09:39.780 --> 02:09:40.720
 ausgezahlt wird

02:09:40.720 --> 02:09:43.260
 und wenn das

02:09:43.260 --> 02:09:43.760
 Geld nicht reicht,

02:09:43.760 --> 02:09:44.280
 dann überlegen

02:09:44.280 --> 02:09:44.780
 wir uns halt

02:09:44.780 --> 02:09:45.320
 was, um

02:09:45.320 --> 02:09:45.860
 irgendwie mehr

02:09:45.860 --> 02:09:46.440
 Geld zu verdienen,

02:09:46.440 --> 02:09:46.940
 aber es geht halt

02:09:46.940 --> 02:09:47.320
 nicht darum,

02:09:47.320 --> 02:09:49.160
 den Leuten

02:09:49.160 --> 02:09:49.460
 irgendwie die

02:09:49.460 --> 02:09:49.900
 Daten hart

02:09:49.900 --> 02:09:50.460
 abzugreifen,

02:09:50.460 --> 02:09:51.080
 dafür haben wir

02:09:51.080 --> 02:09:52.240
 ja und da bin

02:09:52.240 --> 02:09:53.300
 ich auch relativ,

02:09:53.300 --> 02:09:55.580
 nee, kann man

02:09:55.580 --> 02:09:56.000
 schon sagen,

02:09:56.000 --> 02:09:56.340
 auch wenn es

02:09:56.340 --> 02:09:57.000
 vielleicht abgedroschen

02:09:57.000 --> 02:09:57.420
 geht, bin ich

02:09:57.420 --> 02:09:58.060
 relativ stolz,

02:09:58.060 --> 02:09:58.580
 dass Mozilla

02:09:58.580 --> 02:09:59.760
 halt tatsächlich

02:09:59.760 --> 02:10:00.680
 dieses Manifest

02:10:00.680 --> 02:10:01.120
 hat, wo halt

02:10:01.120 --> 02:10:01.500
 drin steht,

02:10:01.500 --> 02:10:02.660
 uns ist es primär

02:10:02.660 --> 02:10:03.460
 wichtig und alles,

02:10:03.460 --> 02:10:04.060
 was wir tun,

02:10:04.060 --> 02:10:04.520
 leitet sich

02:10:04.520 --> 02:10:05.020
 daraus ab,

02:10:05.020 --> 02:10:06.120
 dass das Internet

02:10:06.120 --> 02:10:06.600
 offen,

02:10:06.600 --> 02:10:08.020
 interoperabel

02:10:08.020 --> 02:10:09.060
 ist, ganz

02:10:09.060 --> 02:10:09.760
 unabhängig davon,

02:10:09.760 --> 02:10:10.520
 welche Technologie

02:10:10.520 --> 02:10:11.240
 du einsetzt,

02:10:11.240 --> 02:10:11.980
 HTML,

02:10:11.980 --> 02:10:12.840
 JavaScript und

02:10:12.840 --> 02:10:13.140
 so weiter,

02:10:13.140 --> 02:10:13.720
 das darf jeder

02:10:13.720 --> 02:10:14.100
 schreiben,

02:10:14.100 --> 02:10:14.740
 das kann jeder

02:10:14.740 --> 02:10:15.980
 schreiben und

02:10:15.980 --> 02:10:16.740
 du musst nicht

02:10:16.740 --> 02:10:18.360
 irgendwie Teil

02:10:18.360 --> 02:10:19.440
 eines Ogo-Systems

02:10:19.440 --> 02:10:20.120
 sein oder eine

02:10:20.120 --> 02:10:20.840
 bestimmte Hardware

02:10:20.840 --> 02:10:21.700
 einsetzen oder in

02:10:21.700 --> 02:10:22.260
 einem App-Store

02:10:22.260 --> 02:10:22.920
 sein oder sonst

02:10:22.920 --> 02:10:23.860
 was, sondern

02:10:23.860 --> 02:10:24.480
 es ist für alle

02:10:24.480 --> 02:10:25.460
 möglich und wir

02:10:25.460 --> 02:10:26.940
 wollen das und

02:10:26.940 --> 02:10:28.160
 wir arbeiten aktiv

02:10:28.160 --> 02:10:29.060
 immer weiter darauf

02:10:29.060 --> 02:10:29.520
 hin, dass es

02:10:29.520 --> 02:10:30.140
 möglicher und

02:10:30.140 --> 02:10:30.660
 möglicher wird,

02:10:30.660 --> 02:10:31.800
 dass das Web

02:10:31.800 --> 02:10:33.120
 für alle zugänglich

02:10:33.120 --> 02:10:34.680
 ist und sicher

02:10:34.680 --> 02:10:36.740
 und datenschützend

02:10:36.740 --> 02:10:37.960
 und das finde ich

02:10:37.960 --> 02:10:38.800
 wirklich sehr,

02:10:38.800 --> 02:10:39.320
 sehr cool und

02:10:39.320 --> 02:10:39.720
 das ist mir

02:10:39.720 --> 02:10:40.040
 persönlich

02:10:40.040 --> 02:10:40.380
 wichtig,

02:10:40.680 --> 02:10:41.260
 deswegen bin ich

02:10:41.260 --> 02:10:41.580
 gerne bei

02:10:41.580 --> 02:10:41.860
 Mozilla,

02:10:41.860 --> 02:10:42.660
 kann ich wirklich

02:10:42.660 --> 02:10:43.100
 so sagen.

02:10:43.100 --> 02:10:44.540
 So, jetzt

02:10:44.540 --> 02:10:45.680
 kriegt ihr gleich

02:10:45.680 --> 02:10:46.160
 ganz viele

02:10:46.160 --> 02:10:46.780
 Bewerbungen

02:10:46.780 --> 02:10:49.820
 oder ganz viele

02:10:49.820 --> 02:10:50.420
 Hass-Mails,

02:10:50.420 --> 02:10:52.240
 fbraun.mozilla.com

02:10:52.240 --> 02:10:53.920
 Diese Werbegeschichte,

02:10:53.920 --> 02:10:54.880
 das ist so eine

02:10:54.880 --> 02:10:55.900
 Sache, wir haben ja

02:10:55.900 --> 02:10:56.340
 vorhin drüber

02:10:56.340 --> 02:10:56.880
 gesprochen, was

02:10:56.880 --> 02:10:57.320
 kostet eine

02:10:57.320 --> 02:10:58.560
 Podcast-Folge und

02:10:58.560 --> 02:10:59.080
 ich sehe es halt

02:10:59.080 --> 02:11:00.340
 auch an mir, ich

02:11:00.340 --> 02:11:00.840
 habe da so ein

02:11:00.840 --> 02:11:01.320
 gespaltenes

02:11:01.320 --> 02:11:01.900
 Verhältnis, weil

02:11:01.900 --> 02:11:02.840
 ich sage, ich

02:11:02.840 --> 02:11:04.260
 hatte auch, ich

02:11:04.260 --> 02:11:04.740
 habe mich auch so

02:11:04.740 --> 02:11:05.480
 geärgert, was jetzt

02:11:05.480 --> 02:11:06.200
 auf der Startseite

02:11:06.200 --> 02:11:07.380
 jetzt Werbung, also

02:11:07.380 --> 02:11:08.640
 ich kann das

02:11:08.640 --> 02:11:09.580
 total nachvollziehen

02:11:09.580 --> 02:11:10.040
 auf der anderen

02:11:10.040 --> 02:11:11.560
 Seite, ich glaube

02:11:11.560 --> 02:11:13.520
 es ist, es ist

02:11:13.520 --> 02:11:14.980
 super schwer, den

02:11:14.980 --> 02:11:15.660
 Leuten zu

02:11:15.660 --> 02:11:17.400
 erklären, warum

02:11:17.400 --> 02:11:18.740
 sie jetzt, warum

02:11:18.740 --> 02:11:19.760
 das Geld kostet

02:11:19.760 --> 02:11:20.940
 und, und dass sie

02:11:20.940 --> 02:11:21.540
 das auch, dass sie

02:11:21.540 --> 02:11:21.940
 das dann auch

02:11:21.940 --> 02:11:22.560
 verstehen, weil ich

02:11:22.560 --> 02:11:23.400
 glaube, sobald es mal

02:11:23.400 --> 02:11:24.220
 jemand verstanden hat

02:11:24.220 --> 02:11:25.180
 und sagt, hey, Mensch,

02:11:25.180 --> 02:11:26.260
 da arbeiten 700

02:11:26.260 --> 02:11:27.320
 Leute, die arbeiten

02:11:27.320 --> 02:11:28.240
 da und die machen

02:11:28.240 --> 02:11:28.920
 dies und die machen

02:11:28.920 --> 02:11:29.620
 das und die machen

02:11:29.620 --> 02:11:30.380
 ganz viel auch nicht

02:11:30.380 --> 02:11:31.340
 nur, nicht nur den

02:11:31.340 --> 02:11:32.160
 Browser, sondern auch

02:11:32.160 --> 02:11:33.840
 irgendwie für

02:11:33.840 --> 02:11:35.560
 Privacy im Allgemeinen

02:11:35.560 --> 02:11:37.360
 und für Security und

02:11:37.360 --> 02:11:38.520
 Accessibility und keine

02:11:38.520 --> 02:11:39.100
 Ahnung, da wird so

02:11:39.100 --> 02:11:41.000
 viel gemacht, dass das

02:11:41.000 --> 02:11:41.760
 was kostet, dass die

02:11:41.760 --> 02:11:42.620
 Leute das nicht alles

02:11:42.620 --> 02:11:43.500
 in ihrer Freizeit

02:11:43.500 --> 02:11:44.100
 machen können, das ist

02:11:44.100 --> 02:11:44.680
 ja eigentlich, das

02:11:44.680 --> 02:11:45.360
 leuchtet dann jedem

02:11:45.360 --> 02:11:46.860
 ein, also das hat, das

02:11:46.860 --> 02:11:47.420
 hat einen großen

02:11:47.420 --> 02:11:48.500
 Wert, der erschaffen

02:11:48.500 --> 02:11:49.400
 wird für die, für die

02:11:49.400 --> 02:11:50.240
 Gesamtgesellschaft

02:11:50.240 --> 02:11:51.400
 und wenn man das vor

02:11:51.400 --> 02:11:53.140
 dem Standpunkt sieht, dann

02:11:53.140 --> 02:11:53.940
 klickt man vielleicht auch

02:11:53.940 --> 02:11:54.920
 ganz gern mal auf so eine

02:11:54.920 --> 02:11:55.860
 Werbung drauf, dann macht

02:11:55.860 --> 02:11:56.520
 man es vielleicht sogar

02:11:56.520 --> 02:11:58.960
 bewusst, aber das muss

02:11:58.960 --> 02:12:00.160
 man erst mal, das muss

02:12:00.160 --> 02:12:01.000
 erst mal verstanden

02:12:01.000 --> 02:12:02.360
 werden, was da, was da

02:12:02.360 --> 02:12:03.020
 dahinter steckt

02:12:03.020 --> 02:12:04.800
 und das finde ich ganz

02:12:04.800 --> 02:12:05.040
 wichtig.

02:12:05.040 --> 02:12:05.860
 Ja, das ist natürlich

02:12:05.860 --> 02:12:07.880
 teilweise, teilweise sehr

02:12:07.880 --> 02:12:08.800
 schwierig und ich muss

02:12:08.800 --> 02:12:10.420
 sagen, ich muss gestehen

02:12:10.420 --> 02:12:11.380
 eigentlich, dass ich extrem

02:12:11.380 --> 02:12:12.320
 geizig bin im Internet.

02:12:12.320 --> 02:12:14.880
 Ich spende leider extrem

02:12:14.880 --> 02:12:16.300
 wenig für Podcasts, die

02:12:16.300 --> 02:12:17.920
 ich höre und für, für

02:12:17.920 --> 02:12:19.020
 Produkte, die ich kostenlos

02:12:19.040 --> 02:12:21.240
 nutze, ähm, ist mir aber

02:12:21.240 --> 02:12:23.140
 tatsächlich, äh, bewusst und

02:12:23.140 --> 02:12:24.360
 ich, ich werde besser, aber

02:12:24.360 --> 02:12:25.960
 ich muss sagen, ähm, ich

02:12:25.960 --> 02:12:26.740
 kann's halt auch irgendwie

02:12:26.740 --> 02:12:29.780
 verstehen, aber, ähm, wenn

02:12:29.780 --> 02:12:30.780
 es einem extrem wichtig ist,

02:12:30.780 --> 02:12:31.500
 dann kann man das halt auch

02:12:31.500 --> 02:12:32.400
 alles aufschalten, ne?

02:12:32.460 --> 02:12:33.680
 also ich sag jetzt nicht hier dieses

02:12:33.680 --> 02:12:34.880
 doofe, hä, ist Open Source, dann

02:12:34.880 --> 02:12:36.080
 kompiliere dir halt dein eigenes und

02:12:36.080 --> 02:12:37.500
 mach halt irgendwie, kommentiere

02:12:37.500 --> 02:12:38.360
 den Code aus, nein, es gibt

02:12:38.360 --> 02:12:38.900
 eigentlich für alles einen

02:12:38.900 --> 02:12:41.840
 Schalter, also das ist alles, äh,

02:12:41.840 --> 02:12:43.120
 alles in der Option, wir

02:12:43.120 --> 02:12:44.020
 verstecken da ja auch nichts.

02:12:44.020 --> 02:12:46.120
 Also was bei mir jetzt sehr gut

02:12:46.120 --> 02:12:47.460
 funktioniert, wo ich immer wieder

02:12:47.460 --> 02:12:48.740
 denke, ach ja, das machst du

02:12:48.740 --> 02:12:50.660
 jetzt, ist, äh, wenn Wikipedia

02:12:50.660 --> 02:12:52.780
 diese riesen Werbebanner

02:12:52.780 --> 02:12:55.240
 schaltet, ähm, und sagt, hey, wir,

02:12:55.240 --> 02:12:56.240
 wir müssen mal irgendwie, wir

02:12:56.240 --> 02:12:56.820
 müssen mal wieder Geld

02:12:56.820 --> 02:12:57.380
 einsammeln.

02:12:57.680 --> 02:12:58.940
 Das ist zwar mega nervig, aber

02:12:58.940 --> 02:13:00.860
 ich denk dann jedes Mal, ah, hab

02:13:00.860 --> 02:13:01.700
 ich dieses Jahr schon was

02:13:01.700 --> 02:13:03.120
 gespendet, ah nee, okay, dann

02:13:03.120 --> 02:13:04.040
 schmeiß ich jetzt irgendwie da

02:13:04.040 --> 02:13:05.000
 noch mal was in den Hut, weil

02:13:05.000 --> 02:13:06.200
 das ist eine wichtige Sache und

02:13:06.200 --> 02:13:08.540
 ich glaube, ich weiß nicht, ob

02:13:08.540 --> 02:13:09.960
 das jetzt ein Modell ist für

02:13:09.960 --> 02:13:10.980
 Mozilla, ich weiß auch nicht, ob

02:13:10.980 --> 02:13:11.860
 das macht ihr vielleicht auch

02:13:11.860 --> 02:13:13.400
 schon, keine Ahnung, ähm, aber

02:13:13.400 --> 02:13:14.600
 das ist was, wo ich dann immer

02:13:14.600 --> 02:13:16.440
 so denk, oh ja, stimmt, das ist

02:13:16.440 --> 02:13:17.160
 jetzt irgendwie, das ist was

02:13:17.160 --> 02:13:18.940
 Wichtiges, ähm, da, da werf ich

02:13:18.940 --> 02:13:19.720
 jetzt mal ein bisschen Geld

02:13:19.720 --> 02:13:21.560
 rein, weil, weil ich will, dass

02:13:21.560 --> 02:13:22.660
 das weiter besteht, weil es mir

02:13:22.660 --> 02:13:23.580
 persönlich wichtig ist.

02:13:23.580 --> 02:13:24.400
 Hat bei mir auch schon

02:13:24.400 --> 02:13:25.580
 funktioniert, ja, muss ich

02:13:25.580 --> 02:13:25.860
 sagen.

02:13:26.860 --> 02:13:28.060
 Ich glaube, die Wikipedia, die

02:13:28.060 --> 02:13:29.020
 macht das relativ gut.

02:13:29.020 --> 02:13:29.900
 Ich glaube, die kriegt auch

02:13:29.900 --> 02:13:31.160
 ganz gut, ganz gut Geld.

02:13:31.160 --> 02:13:33.540
 Als, ähm, intensiver Wikipedia-

02:13:33.540 --> 02:13:35.480
 Leser bin ich auch, äh, auch

02:13:35.480 --> 02:13:36.160
 großer Fan.

02:13:36.160 --> 02:13:37.660
 Also man kann tatsächlich an die

02:13:37.660 --> 02:13:39.720
 Mozilla Foundation spenden, aber

02:13:39.720 --> 02:13:41.000
 dieses Geld wird tatsächlich

02:13:41.000 --> 02:13:45.500
 hauptsächlich für, ähm, wie

02:13:45.500 --> 02:13:47.480
 soll ich das sagen, für, für

02:13:47.480 --> 02:13:49.560
 Non-Profit-Projekte eingesetzt,

02:13:49.560 --> 02:13:50.940
 die wir, die wir ins Leben

02:13:50.940 --> 02:13:52.880
 rufen, bestimmte Projekte für.

02:13:52.880 --> 02:13:54.420
 Und ich glaube, Fokus für

02:13:54.420 --> 02:13:57.220
 dieses Jahr war zum Beispiel, ähm,

02:13:57.220 --> 02:14:01.880
 und ich befürchte, ich sage es

02:14:01.880 --> 02:14:02.760
 vielleicht nicht ganz richtig,

02:14:02.760 --> 02:14:04.700
 Trustworthy AI, dass wir sagen,

02:14:04.700 --> 02:14:06.320
 Moment mal, alle machen jetzt

02:14:06.320 --> 02:14:08.300
 AI, was heißt das eigentlich

02:14:08.300 --> 02:14:08.880
 erstens?

02:14:08.880 --> 02:14:11.300
 Und zweitens, was bedeutet das

02:14:11.300 --> 02:14:12.360
 für unsere Daten?

02:14:12.360 --> 02:14:14.620
 Und drittens, wie kann man dafür

02:14:14.620 --> 02:14:15.900
 sorgen, dass das transparent ist,

02:14:15.900 --> 02:14:16.760
 wenn irgendwelche komischen

02:14:16.760 --> 02:14:18.060
 Systeme Entscheidungen über uns

02:14:18.060 --> 02:14:18.320
 fällen?

02:14:19.020 --> 02:14:20.520
 Und, ähm, da hat die

02:14:20.520 --> 02:14:21.800
 Foundation, die Mozilla Foundation

02:14:21.800 --> 02:14:24.060
 extrem viel, äh, Arbeit

02:14:24.060 --> 02:14:26.580
 geleistet, um zu erklären, wie

02:14:26.580 --> 02:14:30.040
 schnell man aus Versehen und an

02:14:30.040 --> 02:14:30.980
 welchen Stellen man überall

02:14:30.980 --> 02:14:33.260
 aus Versehen, ähm, Rassismus und

02:14:33.260 --> 02:14:34.820
 Vorurteile und all das Schlechte in

02:14:34.820 --> 02:14:35.960
 dieser Welt in solche Machine

02:14:35.960 --> 02:14:37.480
 Learning Algorithmen kippt, in

02:14:37.480 --> 02:14:39.160
 dem man einfach nur den, den

02:14:39.160 --> 02:14:41.940
 Status Quo messen lässt oder, oder

02:14:41.940 --> 02:14:43.420
 erraten lässt, was anderes ist es

02:14:43.420 --> 02:14:43.880
 ja eigentlich nicht.

02:14:43.880 --> 02:14:47.600
 Da gab's so schöne Sachen schon

02:14:47.600 --> 02:14:50.080
 auf Twitter, äh, also ursprünglich

02:14:50.080 --> 02:14:51.140
 mal, was mir jetzt als erstes

02:14:51.140 --> 02:14:53.120
 einfällt, ist, äh, so ein, so ein

02:14:53.120 --> 02:14:55.020
 Bot, der aus Tweets gelernt hat, zu

02:14:55.020 --> 02:14:56.700
 kommunizieren, der dann plötzlich ein

02:14:56.700 --> 02:14:59.800
 ganz schlimmer Rassist war, ähm, und

02:14:59.800 --> 02:15:01.620
 dann auch die, diese Geschichte mit

02:15:01.620 --> 02:15:02.960
 den, äh, mit den Bildern bei

02:15:02.960 --> 02:15:03.180
 Twitter.

02:15:03.180 --> 02:15:04.020
 Bildausschnitte, ja.

02:15:04.020 --> 02:15:06.120
 Bildausschnitte, die eigentlich immer

02:15:06.120 --> 02:15:07.420
 weiße Menschen, weiße Männer

02:15:07.420 --> 02:15:08.300
 vorgezogen haben.

02:15:08.300 --> 02:15:11.380
 Ja, genau, genau, das, das sind so

02:15:11.380 --> 02:15:17.380
 die Haupt, ähm, die Hauptprojekte, so

02:15:17.380 --> 02:15:19.080
 von der Mozilla Foundation, die man

02:15:19.080 --> 02:15:20.420
 eigentlich mit den Spenden bezahlt.

02:15:20.420 --> 02:15:22.180
 Das heißt tatsächlich, wenn es

02:15:22.180 --> 02:15:26.640
 wichtig ist, ähm, dem, ich sag mal,

02:15:26.640 --> 02:15:29.940
 den Produkten Geld zu geben im

02:15:29.940 --> 02:15:31.820
 weitesten Sinne, sagen wir

02:15:31.820 --> 02:15:34.260
 tatsächlich gerade, ähm, wir

02:15:34.260 --> 02:15:36.320
 versuchen Premium-Services anzubieten

02:15:36.320 --> 02:15:37.880
 und der erste in dieser Reihe ist

02:15:37.880 --> 02:15:40.160
 Firefox VPN, oder heißt es

02:15:40.160 --> 02:15:41.880
 Mozilla VPN, ich weiß es leider gar

02:15:41.880 --> 02:15:42.360
 nicht genau.

02:15:42.360 --> 02:15:44.840
 Ich seh, ihr seht, ich bin, ich bin

02:15:44.840 --> 02:15:46.180
 hier, weil ich die Sanitator-APL

02:15:46.180 --> 02:15:47.220
 richtig, richtig geil finde.

02:15:47.220 --> 02:15:48.540
 Ich bin hier nicht, weil unsere

02:15:48.540 --> 02:15:50.960
 Press, äh, Abteilung mich hier für

02:15:50.960 --> 02:15:51.540
 gebrieft hat.

02:15:51.540 --> 02:15:53.840
 Ich glaube, es heißt Mozilla VPN.

02:15:53.840 --> 02:15:56.220
 Das kann man kaufen, äh, das

02:15:56.220 --> 02:15:57.960
 funktioniert so wie jedes VPN auch

02:15:57.960 --> 02:16:00.680
 und ihr werdet wissen, der VPN-Markt

02:16:00.680 --> 02:16:01.720
 ist hart umstritten.

02:16:01.720 --> 02:16:04.100
 Äh, ich glaube, dass wir halbwegs

02:16:04.100 --> 02:16:04.980
 vertrauenswürdig sind.

02:16:04.980 --> 02:16:07.780
 Das sag ich auch, äh, weil es einen

02:16:07.780 --> 02:16:09.600
 relativ guten, äh, Security-Audit gab

02:16:09.600 --> 02:16:11.220
 von unserem VPN, da gibt's, äh, auch

02:16:11.220 --> 02:16:12.240
 ein Public-Report zu.

02:16:12.240 --> 02:16:15.660
 Ähm, und, äh, selbst wenn man

02:16:15.660 --> 02:16:16.740
 sagt, ah, VPN, vielleicht brauche

02:16:16.740 --> 02:16:17.680
 ich das nicht, ist das vielleicht

02:16:17.680 --> 02:16:18.740
 trotzdem einfach eine geile

02:16:18.740 --> 02:16:19.880
 Methode zu sein, dann kann ich

02:16:19.880 --> 02:16:20.920
 denen ja irgendwie Geld zukommen

02:16:20.920 --> 02:16:23.880
 lassen. Ähm, kann man sich

02:16:23.880 --> 02:16:24.180
 überlegen.

02:16:24.780 --> 02:16:25.800
 So, hab ich jetzt grad schnell

02:16:25.800 --> 02:16:26.280
 gemacht.

02:16:26.280 --> 02:16:28.520
 Was, äh, VPN abgespendet?

02:16:28.520 --> 02:16:29.460
 Ich hab jetzt mal gespendet.

02:16:29.460 --> 02:16:30.700
 Ich wollte grad sagen, wem die

02:16:30.700 --> 02:16:31.800
 anderen Themen wichtig sind, weil

02:16:31.800 --> 02:16:32.720
 die, ich, ich find die auch

02:16:32.720 --> 02:16:34.380
 extrem wichtig und, äh, mir war das

02:16:34.380 --> 02:16:35.300
 gar nicht bewusst, dass man einfach

02:16:35.300 --> 02:16:37.020
 so spenden kann und dass es solche

02:16:37.020 --> 02:16:39.400
 Projekte unterstützt. Äh, der Link

02:16:39.400 --> 02:16:40.160
 kommt auf jeden Fall in die

02:16:40.160 --> 02:16:41.640
 Shownotes und ich werd auch nach

02:16:41.640 --> 02:16:43.540
 der Aufnahme, glaub ich, was

02:16:43.540 --> 02:16:44.000
 da lassen.

02:16:44.000 --> 02:16:46.040
 Mhm, genau. Also Mozilla

02:16:46.040 --> 02:16:47.680
 Foundation, ich, ähm, die haben auch

02:16:47.680 --> 02:16:48.260
 eine Extra-Seite

02:16:48.260 --> 02:16:50.740
 foundation.mozilla.org und da geht's

02:16:50.740 --> 02:16:55.160
 um Advocacy und, äh, ein, ähm, und

02:16:55.160 --> 02:16:56.600
 auch Fellowship-Programme. Also es

02:16:56.600 --> 02:16:58.240
 werden tatsächlich auch von dem

02:16:58.240 --> 02:17:01.980
 Geld Forscher bezahlt, die, ähm,

02:17:01.980 --> 02:17:05.040
 was ja ganz, ganz, ganz häufig so

02:17:05.040 --> 02:17:06.840
 ist, wenn man, äh, wenn man in der

02:17:06.840 --> 02:17:08.080
 wissenschaftlichen Welt unterwegs

02:17:08.080 --> 02:17:09.800
 ist, in Akademia, wenn man seinen

02:17:09.800 --> 02:17:11.100
 Doktortitel macht oder seinen

02:17:11.100 --> 02:17:12.700
 Postdoc, dann muss man ja auf

02:17:12.700 --> 02:17:13.680
 irgendein, über irgendwelche

02:17:13.680 --> 02:17:14.880
 Projektmittel bezahlt werden. Das

02:17:14.880 --> 02:17:16.200
 passiert ja leider nicht umsonst.

02:17:16.200 --> 02:17:18.160
 Da gibt Mozilla tatsächlich Geld

02:17:18.160 --> 02:17:20.340
 für Projektmittel, spezifisch für

02:17:20.340 --> 02:17:24.100
 Trustworthy-AI und, ähm, wie das ist

02:17:24.100 --> 02:17:25.980
 mit, mit Discrimination und Bias und

02:17:25.980 --> 02:17:28.620
 so weiter. Und da gibt's dann halt

02:17:28.620 --> 02:17:30.080
 so ein Fellowship-Programm, genau.

02:17:30.080 --> 02:17:35.160
 So. Wow. Cool. Viel gelernt.

02:17:35.160 --> 02:17:39.800
 Ja. Ähm, dann können wir jetzt mal

02:17:39.800 --> 02:17:43.100
 kurz durchatmen und, äh, wenn wir

02:17:43.100 --> 02:17:44.520
 jetzt nichts mehr da hinzuzufügen

02:17:44.520 --> 02:17:47.780
 haben, Fragezeichen, wer was sagen

02:17:47.780 --> 02:17:49.220
 möchte, muss das jetzt schnell tun.

02:17:49.380 --> 02:17:51.820
 ansonsten, wenn wir jetzt, würden wir

02:17:51.820 --> 02:17:54.580
 jetzt zur nächsten Rubrik gehen, die

02:17:54.580 --> 02:17:56.220
 dann auch ganz schnell vorbei ist

02:17:56.220 --> 02:17:56.460
 wieder.

02:17:56.460 --> 02:17:59.000
 Das Geil-Teil.

02:17:59.000 --> 02:18:02.240
 Geil-Teil.

02:18:02.240 --> 02:18:08.020
 Ja, das Geil-Teil heute von, zumindest

02:18:08.020 --> 02:18:10.300
 das von mir, ähm, ich würde, würde

02:18:10.300 --> 02:18:11.860
 mir rausnehmen, da mal anzufangen, ist

02:18:11.860 --> 02:18:13.500
 eigentlich was ganz furchtbares.

02:18:15.200 --> 02:18:18.520
 Und zwar ist das ein, ein Link, äh, der

02:18:18.520 --> 02:18:21.140
 da heißt, äh, how I experience the web

02:18:21.140 --> 02:18:23.680
 today. Ähm, und wenn man da drauf geht,

02:18:23.680 --> 02:18:25.600
 dann sieht man erst mal so was, was so

02:18:25.600 --> 02:18:27.420
 aussieht wie so eine Google-Suchergebnis-Seite

02:18:27.420 --> 02:18:30.280
 mit einem Ergebnis. Also, und ansonsten ist die

02:18:30.280 --> 02:18:33.220
 Seite relativ weiß. Äh, und, äh, man darf auf

02:18:33.220 --> 02:18:34.740
 keinen Fall den Fehler machen, da drauf zu

02:18:34.740 --> 02:18:38.180
 klicken auf, äh, auf, auf, auf den Link aus dem

02:18:38.180 --> 02:18:41.500
 Suchergebnis. Weil dann geht der Wahnsinn los. Ähm, dann

02:18:41.500 --> 02:18:44.380
 kommt erst ein Cookie-Layer, den man dann, äh,

02:18:44.380 --> 02:18:47.460
 akzeptiert. Und dann kommt, äh, hier

02:18:47.460 --> 02:18:50.320
 möchtest du Notification, äh, zulassen im

02:18:50.320 --> 02:18:53.920
 Browser. Und dann, äh, nochmal Notification. Und

02:18:53.920 --> 02:18:55.860
 dann soll ich zum Newsletter mich anmelden. Und

02:18:55.860 --> 02:18:58.260
 dann wird nochmal ein Adblock detektiert. Und

02:18:58.260 --> 02:19:00.840
 ich soll dann noch was, direkt was kaufen. Und

02:19:00.840 --> 02:19:02.460
 dann irgendwann muss ich noch Continue

02:19:02.460 --> 02:19:03.860
 Reading drücken. Und dann darf ich den

02:19:03.860 --> 02:19:05.620
 Content sehen. Der ist aber so werbeüberlastet,

02:19:05.620 --> 02:19:06.860
 dass ich eigentlich gar nichts sehen kann. Und

02:19:06.860 --> 02:19:08.780
 rechts unten geht ja noch so ein Chat auf und

02:19:08.780 --> 02:19:11.420
 noch ein Video und ich scrolle und dann

02:19:11.420 --> 02:19:13.400
 geht noch ein Fenster auf. Und es ist

02:19:13.400 --> 02:19:15.780
 einfach der völlige Wahnsinn. Und, äh, es ist

02:19:15.780 --> 02:19:18.180
 leider so, dass viele Seiten tatsächlich

02:19:18.180 --> 02:19:22.420
 genauso sind heutzutage. Ähm, und es ist ein

02:19:22.420 --> 02:19:24.840
 ganz schönes Beispiel dafür, ähm, wie das

02:19:24.840 --> 02:19:26.740
 Web irgendwie so in eine komische Richtung

02:19:26.740 --> 02:19:28.440
 abgedriftet ist. Der Konstantin und ich, wir

02:19:28.440 --> 02:19:30.020
 haben uns vorhin schon, äh, im Vorfeld

02:19:30.020 --> 02:19:31.440
 drüber unterhalten und haben gesagt, ja, das

02:19:31.440 --> 02:19:35.820
 war, das war ja nicht immer so. Ähm, und, äh, ja, es

02:19:35.820 --> 02:19:38.260
 ist einfach, ähm, einfach mal draufklicken und

02:19:38.260 --> 02:19:42.260
 keinen Spaß haben an der Stelle, weil es ist, äh, es ist

02:19:42.260 --> 02:19:44.000
 sehr frustrierend und es, aber dadurch, dass es

02:19:44.000 --> 02:19:47.640
 halt keine echten Ads sind, sondern halt nur so ein, so ein, so ein, so ein Mockup. Ähm,

02:19:47.640 --> 02:19:51.240
 ähm, ah ja, genau. Und wenn ich die Seite verlassen will, dann kommt dieser, möchtest du diese

02:19:51.240 --> 02:19:55.500
 Seite wirklich verlassen? Ja, genau. Es sind auch schöne Details. Also wenn du dann, äh, die

02:19:55.500 --> 02:19:57.540
 Cookie-Meldung nicht einfach akzeptierst, dann edit Cookie

02:19:57.540 --> 02:20:04.280
 Preferences. Also auch schön dieses, äh, UI, ähm, Anti-Pattern, dass halt dieser Accept-All-Cookies-Button ganz

02:20:04.280 --> 02:20:08.240
 großgrün ist und dann dieses Accept-Settings, was ich ja eigentlich will in diesem

02:20:08.240 --> 02:20:12.640
 Overlay, dass das dann so ein ganz kleiner grauer Link ist, so am Rande, den man eigentlich

02:20:12.640 --> 02:20:17.820
 nicht klicken würde von sich aus. Sehr schön. Also, äh, man hat große Schmerzen, da rauszukommen

02:20:17.820 --> 02:20:22.300
 und zum Content zu kommen und dann, wie gesagt, wenn man, wenn man, äh, zehn Zentimeter, äh, zehn

02:20:22.300 --> 02:20:26.020
 Zentimeter, zehn Pixel scrollt oder so, dann kommt direkt das nächste Pop-Up und es ist echt

02:20:26.020 --> 02:20:30.280
 der Wahnsinn. Also, äh, wie gesagt, das macht keinen großen Spaß, aber es ist irgendwie ein

02:20:30.280 --> 02:20:34.020
 bisschen geil, so für, für Masochisten, glaube ich, für so Web-Masochisten ist das was.

02:20:34.020 --> 02:20:39.680
 Genau, äh, und, äh, hast du auch was mitgebracht, Freddy?

02:20:40.360 --> 02:20:45.260
 Ja, tatsächlich. Es ist, ähm, ist vielleicht ein bisschen nerdy, aber mir hat es tatsächlich

02:20:45.260 --> 02:20:52.900
 geholfen. Ähm, und zwar ein Git-Befehl, der heißt Git-Worktree. Äh, für alle, die es nicht

02:20:52.900 --> 02:21:00.060
 kennen, man hat ein relativ großes Repository ausgecheckt, arbeitet gerade an einem Pull-Request,

02:21:00.060 --> 02:21:05.320
 der ein bisschen länger ist und dann kommt irgendwas um die Ecke, ob es, äh, was ist, was einem selber

02:21:05.320 --> 02:21:11.800
 aufgefallen ist oder jemand hat Bescheid gesagt, äh, folgendes. Ähm, und man muss jetzt Pause

02:21:11.800 --> 02:21:21.320
 machen und in einem anderen Branch weiterarbeiten. Hat aber mega dirty Stash hier und das ist

02:21:21.320 --> 02:21:25.920
 teilweise schon in der Staging und das noch nicht und teilweise neue Dateien und angelegt

02:21:25.920 --> 02:21:30.540
 und das ist mega kacke und man will das jetzt eigentlich, will man das jetzt auch nicht mehr

02:21:30.540 --> 02:21:33.740
 committen und hast den nicht gesehen, sondern das ist halt dieses eine Projekt, da werde

02:21:33.740 --> 02:21:37.080
 ich auch noch eine Woche dran arbeiten und ich will es fertig machen. Eigentlich will

02:21:37.080 --> 02:21:41.740
 ich das ganze Projekt nochmal in ein anderes Verzeichnis neu auschecken. Ich will es aber

02:21:41.740 --> 02:21:46.780
 auch nicht wieder komplett neu alles runterladen und hast den nicht gesehen. Und genau das macht

02:21:46.780 --> 02:21:54.460
 Git-Worktree. Im Endeffekt gibst du an Git-Worktree-Add, also wie hinzufügen, und dann gibst du

02:21:54.460 --> 02:21:58.860
 minus B einen neuen Branch an oder vielleicht einen Branch, den du schon hast, einfach den, den Branch

02:21:58.860 --> 02:22:04.180
 Namen und dann gibst du einen Pfad an zu einem neuen Verzeichnis, das für dich erstellt wird. Nämlich

02:22:04.180 --> 02:22:12.660
 zum Beispiel, ähm, ähm, deinen Projektname 2 oder deinen Projektname Bindestrich und was auch immer

02:22:12.660 --> 02:22:18.560
 die andere Aufgabe ist, die du damit verbindest. Und dann legst du dir ein Verzeichnis an, aber du hast

02:22:18.560 --> 02:22:25.400
 halt nur einmal das Repository ausgecheckt und Git versteht für dich, ähm, und die Daten, die Git

02:22:25.400 --> 02:22:31.440
 für dich im, im Rücken hält, sind eigentlich nur in einem Git, also Punkt, Git Unterverzeichnis, die

02:22:31.440 --> 02:22:35.680
 Metadaten, die sind halt einfach nur verlinkt. Das heißt, du hast nicht den ganzen Kram doppelt und

02:22:35.680 --> 02:22:41.960
 dreifach auf der Platte. Ähm, für mich extrem nützlich und wichtig, weil ich an Gecko arbeite und wie man

02:22:41.960 --> 02:22:47.240
 sich vielleicht vorstellen kann, das ist eine riesen, äh, riesen Codebase und irgendwann habe ich gemerkt, dass

02:22:47.240 --> 02:22:51.960
 mit dem Branch ist Checken, das geht mir so auf den Sack und dann wieder aufräumen und manchmal geht

02:22:51.960 --> 02:22:58.840
 dann doch was flöten und das ist echt ärgerlich und C++ ist sowieso nicht schön. Ähm, und dann hat ein

02:22:58.840 --> 02:23:01.840
 Kollege gesagt, ja, weißt du was, ich habe einfach das komplette Repository zweimal

02:23:01.840 --> 02:23:06.560
 ausgecheckt, ähm, die Festplatte reicht dafür und wenn die nicht reicht, dann sollen wir halt eine andere

02:23:06.560 --> 02:23:11.740
 Festplatte hinstellen. Und dann hat ein anderer Arbeitskollege gesagt, ja, aber kennst du schon, Git WorkTree,

02:23:11.800 --> 02:23:17.680
 und seitdem, ähm, ähm, ist kein Witz, mache ich ungefähr alle halbe Jahre, mache ich einen Tweet

02:23:17.680 --> 02:23:24.040
 einfach nur mit den, mit der Git WorkTree, äh, Dokumentationsseite von der, von der Git Webseite und

02:23:24.040 --> 02:23:27.660
 dann ist es meistens so ein, so ein Emoji mit Sternchen Augen oder Herzchen Augen, weil ich es einfach so

02:23:27.660 --> 02:23:32.640
 nützlich finde. Und, äh, dann habe ich tatsächlich auch einfach drei Gecko-Verzeichnisse in meinem Home

02:23:32.640 --> 02:23:40.100
 Directory, nämlich irgendwie Gecko Security Patches und Gecko Sanitizer API und, äh, Gecko habe ich

02:23:40.100 --> 02:23:44.420
 vergessen. Und, äh, aber halt die ganzen Metatoren auf der Platte, das ist sehr schön.

02:23:44.420 --> 02:23:45.380
 Cool.

02:23:45.880 --> 02:23:47.300
 Das ist mein Geil-Teil.

02:23:47.300 --> 02:23:51.340
 Das ist tatsächlich geil. Das hatten wir auch in unserer Git-Folge, glaube ich, nicht.

02:23:51.340 --> 02:23:52.340
 Nee, ich kann mich auch nicht erinnern.

02:23:52.340 --> 02:23:57.060
 Das höre ich jetzt auch zum ersten Mal und ich kenne das Problem, das du hast und damit

02:23:57.060 --> 02:24:03.340
 löst. Das heißt, ich werde das, äh, direkt mal einsetzen und, äh, dann vielleicht, vielleicht

02:24:03.340 --> 02:24:06.020
 musst du mich in einem halben Jahr dann mit einem Tweet dann doch nochmal dran erinnern,

02:24:06.020 --> 02:24:09.700
 dass ich es vielleicht dann doch nochmal, aber ich will es auf jeden Fall direkt mal ausprobieren,

02:24:09.760 --> 02:24:14.080
 weil ich kenne das Problem zur Genüge und es ist genau dieses, es ist irgendwie, ich

02:24:14.080 --> 02:24:18.500
 habe da Changes und ein Stash und keine Ahnung und dann hin und her und ich muss jetzt aber

02:24:18.500 --> 02:24:22.720
 doch nochmal irgendwie was, ah, ja. Also es ist wirklich, äh, es ist sehr, sehr nervig

02:24:22.720 --> 02:24:28.480
 und, ah, du hast, äh, Folge 25, hat Konstantin gerade noch, war unsere, war unsere Git-Gott-Folge.

02:24:28.480 --> 02:24:33.200
 Ähm, genau, aber da war, kam das nicht drin vor, also es ist echt eine, eine gute Ergänzung.

02:24:33.200 --> 02:24:34.420
 Vielen Dank an der Stelle.

02:24:34.420 --> 02:24:36.580
 Sehr gutes Geil-Teil.

02:24:36.580 --> 02:24:36.760
 Gerne.

02:24:36.760 --> 02:24:37.240
 Tatsächlich geil.

02:24:37.240 --> 02:24:38.000
 Cool, ja.

02:24:38.000 --> 02:24:42.240
 Ja, damit sind wir dann tatsächlich am Ende, ne?

02:24:42.240 --> 02:24:43.160
 Genau.

02:24:43.160 --> 02:24:48.960
 Gibt es, gibt es noch irgendwas, was wir noch vergessen haben, was du noch sagen möchtest, äh,

02:24:48.960 --> 02:24:49.300
 Freddy?

02:24:49.820 --> 02:24:51.740
 Vielen Dank, dass ich hier sein durfte.

02:24:51.740 --> 02:24:54.620
 Vielen Dank, dass du da warst und dass du dir die Zeit genommen hast.

02:24:54.620 --> 02:24:58.920
 Ja, gerne, es hat Spaß gemacht, auch wenn ich unbefürchte, dass meine Stimme so über

02:24:58.920 --> 02:25:00.160
 die Stunde hinweg geht.

02:25:00.160 --> 02:25:04.800
 Dann trink mal viel Tee und, äh, gute Besserung.

02:25:04.800 --> 02:25:06.280
 Danke, danke.

02:25:06.280 --> 02:25:07.880
 Auf jeden Fall auch von mir gute Besserung.

02:25:07.880 --> 02:25:11.780
 Bei uns hat immer der, der Gast das letzte Wort, also darfst noch irgendwas an unsere

02:25:11.780 --> 02:25:14.060
 ZuhörerInnen richten, was du möchtest.

02:25:14.060 --> 02:25:19.780
 Ähm, lasst euch impfen, benutzt Firefox, ähm, spendet Geld an gemeinnützige,

02:25:19.820 --> 02:25:22.440
 Institutionen, wenn ihr am Ende des Jahres Geld übrig habt.

02:25:22.440 --> 02:25:23.580
 Danke.

02:25:23.580 --> 02:25:24.660
 Ciao.

02:25:24.660 --> 02:25:25.460
 Vielen Dank.

02:25:25.460 --> 02:25:26.460
 Ciao.
