Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:ffit:3-jahr:java:learningunits:lu09:c [2025/11/04 01:52] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu09:c [2025/11/04 01:57] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU09c - Logging in Spring Boot ====== | + | ====== LU09c - CORS & HTTPS ====== |
| - | Das Logging funktioniert im Grossen und Ganzen gleich wie bisher mit '' | + | In diesem Kapitel werden einige praxisrelevanten Stolpersteine erklärt. |
| - | <code java> | + | ==== CSRF / CORS ==== |
| - | import org.slf4j.Logger; | + | |
| - | import org.slf4j.LoggerFactory; | + | |
| - | public class DemoController { | + | CSRF (Cross-Site Request Forgery) ist ein Angriff, bei welchem der Angreifer sensible Informationen oder gar Zugang zu einem Account des Opfers erlangen kann. |
| - | private static final Logger log = LoggerFactory.getLogger(DemoController.class); | + | |
| - | | + | |
| - | log.error(" | + | |
| - | </ | + | |
| - | Neu ist, dass wir die dazugehörigen Einstellungen einfach in unser '' | + | - Das Opfer ist auf einer validen Webseite eingeloggt und besitzt somit ein Cookie o. Ä. mit der Session. |
| + | - Der Täter bringt das Opfer dazu eine präparierte Webseite aufzurufen (zum Beispiel via Phising Mail o. Ä.). | ||
| + | - Im Hintergrund wird von der präparierten Webseite eine Anfrage zur validen Webseite geschickt, inklusive der Session aus dem Cookie. | ||
| + | - Die valide Webseite führt die Aktion aus oder liefert sensible Informationen an die präparierte Seite des Angreifers zurück. | ||
| - | <code application.properties> | + | CORS (Cross-Origin Resource Sharing) ist reguliert Webseitenübergreifende Aufrufe und bietet so ein Sicherheitsmechanismus, |
| - | logging.level.root=INFO | + | |
| - | logging.level.com.example.demo=DEBUG | + | |
| - | logging.file.name=app.log | + | |
| - | </ | + | |
| - | ==== Vereinfachung mit Lombok ==== | + | Damit ein Frontend auf ein Backend zugreifen kann, muss die entsprechende Erlaubnis im Backend konfiguriert sein. |
| - | Project Lombok hilft uns auch hier die Erstellung des Logger-Objektes zu vereinfachen. | + | ==== Github Pages ==== |
| - | <code java> | + | Github Pages ermöglicht es statische Webseiten zu hosten. Jedoch ist man mit der Standard-Domain (github.io) gezwungen, HTTPS zu benutzen (Siehe Sceenshot). |
| - | import lombok.extern.slf4j.Slf4j; | + | |
| - | @Slf4j | + | {{:de: |
| - | public class DemoController | + | |
| - | ... | + | |
| - | log.error(" | + | |
| - | </ | + | |
| + | Mehr dazu auf https:// | ||
| + | |||
| + | Dies hat zur Folge, dass sämtliche APIs, welche von einer solchen Webseite aufgerufen werden, ebenfalls HTTPS unterstützen müssen. | ||