Browse Source

fix: validate languages (#3638)

YidaHu 1 năm trước cách đây
mục cha
commit
7251748d59
1 tập tin đã thay đổi với 6 bổ sung0 xóa
  1. 6 0
      web/i18n/server.ts

+ 6 - 0
web/i18n/server.ts

@@ -46,6 +46,12 @@ export const getLocaleOnServer = (): Locale => {
     languages = new Negotiator({ headers: negotiatorHeaders }).languages()
   }
 
+  // Validate languages
+  if (!Array.isArray(languages) || languages.length === 0 || !languages.every(lang => typeof lang === 'string' && /^[\w-]+$/.test(lang))) {
+    console.error(`Invalid languages: ${languages}`)
+    languages = [i18n.defaultLocale]
+  }
+
   // match locale
   const matchedLocale = match(languages, locales, i18n.defaultLocale) as Locale
   return matchedLocale