diff --git a/20240118/dbs-20240118.pdf b/20240118/dbs-20240118.pdf
index d1e36e8ca9bb4d888ac85240828244e16e49a081..8947b920550e48e337a962cc1c561db61925a81a 100644
Binary files a/20240118/dbs-20240118.pdf and b/20240118/dbs-20240118.pdf differ
diff --git a/20240118/dbs-20240118.tex b/20240118/dbs-20240118.tex
index 90f855739a19ae9fb6c490d70df5c3532df021bb..c64e8e761b99c4b2bcda0d513730b22599e87f3d 100644
--- a/20240118/dbs-20240118.tex
+++ b/20240118/dbs-20240118.tex
@@ -75,6 +75,7 @@
       \end{itemize}
     \item[\textbf{6}] \textbf{Netzwerksicherheit}
     \item[\textbf{7}] \textbf{Verfügbarkeit}
+    \item[\textbf{8}] \textbf{Datenschutz}
   \end{itemize}
 
   \vfilll
@@ -322,7 +323,7 @@
       als symmetrische Verschlüsselung
     \arrowitem
       \newterm{hybride Verschlüsselung}: nur Schlüsselaustausch asymmetrisch,\\
-      eigentliche Vrschlüsselung symmetrisch
+      eigentliche Verschlüsselung symmetrisch
   \end{itemize}
 
 \end{frame}
@@ -452,7 +453,7 @@
       Klassisch schwierige Probleme werden einfacher.
     \item
       Beispiel: Primfaktorzerlegung:
-      $\mathcal{O}\bigl((\log n)^3\bigr)$
+      $\mathcal{O}(n^3)$
       statt $\mathcal{O}\bigl(2^{\sqrt{n\log n}}\bigr)$
     \item
       Problem für asymmetrische Verschlüsselungsalgorithmen,\\
diff --git a/20240118/onion-routing.txt b/20240118/onion-routing.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cba2b7e43e4525595db4e873175d3be4bc6f0615
--- /dev/null
+++ b/20240118/onion-routing.txt
@@ -0,0 +1,44 @@
+Client IP: 10.238.3.4
+
+ - wählt Route durch mehrere Anonymisierungsstellen, typischerweise 3
+    - erste Ziel-Adresse: 172.16.45.55
+    - zweite Ziel-Adresse: 172.31.3.17 (verschlüsselt)
+    - dritte Ziel-Adresse: 192.168.117.12 (zweifach verschlüsselt)
+    - vierte und echte Ziel-Adresse: 192.168.42.1 (dreifach verschlüsselt)
+ - verschlüsselt für Anonymisierungsstelle 1:
+    - echte Absender-Adresse: 10.238.3.4 (verschlüsselt)
+    - Anonymisierungsstelle 2
+
+Anonymisierungsstelle 1, IP: 172.16.45.55
+
+  - kennt echte Absender-Adresse, verschlüsselt sie neu,
+    so daß Anonymisierungsstelle 2 sie nicht mehr lesen kann
+  - entschlüsselt zweite Ziel-Adresse
+  - kennt nicht die dritte Ziel-Adresse
+
+Anonymisierungsstelle 2, IP: 172.31.3.17
+
+  - kennt Absender: Anonymisierungsstelle 1
+  - entschlüsselt dritte Ziel-Adresse
+  - kennt nicht die vierte Ziel-Adresse
+
+Anonymisierungsstelle 3, IP: 192.168.117.12
+
+  - kennt Absender: Anonymisierungsstelle 2
+  - entschlüsselt vierte Ziel-Adresse
+
+Server IP: 192.168.42.1 <-- 10.238.3.4
+
+--> Jede Anonymisierungsstelle kennt nur die Vorgänger- und Nachfolger-Adresse,
+    nicht jedoch Absender und Empfänger (bis auf Eintritts- und Austrittsknoten).
+
+
+Andere Möglichkeit: Server und Client "treffen sich" im Tor-Netzwerk
+                    bei einer Anonymisierungsstelle (Tor-Adressen)
+
+
+Vorteile:
+ - Demokratie wahren in restriktiven Regimes (Dissidenten)
+ - Mißstände melden (Whistleblower)
+Nachteile:
+ - Mißbrauch durch Verbrechen
diff --git a/20240118/xss.txt b/20240118/xss.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ac392ede6d7385fc4710cbf1e15d53dc791d799c
--- /dev/null
+++ b/20240118/xss.txt
@@ -0,0 +1,17 @@
+<img src="https://anderer-webshop.example.de?article=teures_geraet&sofortkauf=yes"/>
+
+Cross-Site-Scripting:
+ - Benutzer ist bereits an einem Server angemeldet
+ - Angreifer bringt benutzer dazu, manipulierte URL aufzurufen
+ - Anmeldedaten sind bereits im Browser hinterlegt
+   --> manipulierte URL kann ohne neue Authentifizierung aktiv werden (z.B. Dinge einkaufen)
+
+--> Angreifer läßt Benutzer in seinem Namen Befehle für Angreifer ausführen
+
+
+Gegenmaßnahmen:
+ - aktuelle Browser
+ - Benutzer schulen ("Nicht auf alles draufklicken!")
+ - keine GET-Requests benutzen (Parameter nicht in URL kodieren),
+   sondern POST-Requests (Parameter über HTTP-Verbindung senden)
+ - In Cookies immer "same site" hinterlegen!