diff --git a/backend/public/favicon.svg b/backend/public/favicon.svg
index 6893eb1..524999c 100644
--- a/backend/public/favicon.svg
+++ b/backend/public/favicon.svg
@@ -1 +1,12 @@
-
\ No newline at end of file
+
diff --git a/backend/public/index.html b/backend/public/index.html
index 0da2b0a..a429c62 100644
--- a/backend/public/index.html
+++ b/backend/public/index.html
@@ -4,12 +4,12 @@
-
Radar Sargasses 971
+ Radar Sargasses Caraïbes
-
-
+
+
diff --git a/backend/public/robots.txt b/backend/public/robots.txt
new file mode 100644
index 0000000..a7ade6f
--- /dev/null
+++ b/backend/public/robots.txt
@@ -0,0 +1,5 @@
+User-agent: *
+Disallow: /api/
+Disallow: /bundles/
+
+Allow: /
diff --git a/backend/public/sw.js b/backend/public/sw.js
index f9d002f..57081c1 100644
--- a/backend/public/sw.js
+++ b/backend/public/sw.js
@@ -25,7 +25,11 @@ self.addEventListener('push', (event) => {
self.addEventListener('notificationclick', (event) => {
event.notification.close();
- const targetUrl = event.notification.data?.url ?? '/';
+ const rawUrl = event.notification.data?.url ?? '/';
+ // N'autoriser que les URLs relatives ou du même domaine (protection open redirect)
+ const targetUrl = (rawUrl.startsWith('/') || rawUrl.startsWith(self.location.origin))
+ ? rawUrl
+ : '/';
event.waitUntil(
clients.matchAll({ type: 'window', includeUncontrolled: true }).then((windowClients) => {
diff --git a/docs/screen.png b/docs/screen.png
new file mode 100644
index 0000000..04a5017
Binary files /dev/null and b/docs/screen.png differ
diff --git a/docs/screen2.png b/docs/screen2.png
new file mode 100644
index 0000000..6bdbcc5
Binary files /dev/null and b/docs/screen2.png differ