From 676ee40cca12ef3a2147d6dbecf822275492404a Mon Sep 17 00:00:00 2001
From: Laurent <58115082+naaturel@users.noreply.github.com>
Date: Fri, 8 Nov 2024 15:10:31 +0100
Subject: [PATCH] Sanitize input in front-side
---
front/.svelte-kit/ambient.d.ts | 4 ++--
front/.svelte-kit/generated/server/internal.js | 2 +-
front/src/lib/models/game.ts | 7 +++++++
front/src/routes/play/+page.svelte | 9 +++++++++
4 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/front/.svelte-kit/ambient.d.ts b/front/.svelte-kit/ambient.d.ts
index 8b35e7c..e8f54ab 100644
--- a/front/.svelte-kit/ambient.d.ts
+++ b/front/.svelte-kit/ambient.d.ts
@@ -42,7 +42,7 @@ declare module '$env/static/private' {
export const DB_USER: string;
export const DriverData: string;
export const EDITOR: string;
- export const EFC_10288: string;
+ export const EFC_25892: string;
export const ffmpeg: string;
export const FPS_BROWSER_APP_PROFILE_STRING: string;
export const FPS_BROWSER_USER_PROFILE_STRING: string;
@@ -150,7 +150,7 @@ declare module '$env/dynamic/private' {
DB_USER: string;
DriverData: string;
EDITOR: string;
- EFC_10288: string;
+ EFC_25892: string;
ffmpeg: string;
FPS_BROWSER_APP_PROFILE_STRING: string;
FPS_BROWSER_USER_PROFILE_STRING: string;
diff --git a/front/.svelte-kit/generated/server/internal.js b/front/.svelte-kit/generated/server/internal.js
index 7c5c727..1e6a414 100644
--- a/front/.svelte-kit/generated/server/internal.js
+++ b/front/.svelte-kit/generated/server/internal.js
@@ -21,7 +21,7 @@ export const options = {
app: ({ head, body, assets, nonce, env }) => "\n\n\t
\n\t\tUnluckiest\n\n\t\t\n\t\t\n\n\t\t\n\t\t\n\n\t\t\n\t\t\n\n\t\t\n\n\t\t\n\t\t\n\n\t\t" + head + "\n\t\n\n\t\n\n\t\t" + body + "
\n\n\t\n\n",
error: ({ status, message }) => "\n\n\t\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t\n\t\t\t
" + status + "\n\t\t\t
\n\t\t\t\t
" + message + "
\n\t\t\t\n\t\t
\n\t\n\n"
},
- version_hash: "18cih05"
+ version_hash: "1rt869l"
};
export async function get_hooks() {
diff --git a/front/src/lib/models/game.ts b/front/src/lib/models/game.ts
index 8dedf7c..303f87e 100644
--- a/front/src/lib/models/game.ts
+++ b/front/src/lib/models/game.ts
@@ -20,6 +20,13 @@ export class Game {
return false;
}
+ public sanitizeName() {
+ this.playerName = this.playerName
+ .trim()
+ .replace(/\s+/g, ' ')
+ .replace(/[^a-zA-Z0-9\- ]/g, '');
+ }
+
private getRandomNumber() : number{
let unit = Math.floor(Math.random() * (this.range + 1));
diff --git a/front/src/routes/play/+page.svelte b/front/src/routes/play/+page.svelte
index c7bfdf7..7792ccf 100644
--- a/front/src/routes/play/+page.svelte
+++ b/front/src/routes/play/+page.svelte
@@ -16,6 +16,7 @@
clearTimeout(timer);
timer = setTimeout(() => {
try{
+ sanitize(inputValue)
validate(inputValue)
game.playerName = inputValue;
} catch (e){
@@ -27,6 +28,7 @@
async function roll(){
try{
+ game.sanitizeName();
validate(game.playerName)
game.state = GameState.Running;
game.play()
@@ -41,6 +43,13 @@
}
}
+ function sanitize(data){
+ return data
+ .trim()
+ .replace(/\s+/g, ' ')
+ .replace(/[^a-zA-Z0-9\- ]/g, '');;
+ }
+
function validate(data){
if(!data) throw new Error("Veuillez indiquer votre nom.");
$scoreStore.forEach(v => {