Witam, mój skrypt wczytuje zmienne od różnych użytkowników przez JSON.
robi to w sposób przedstawiony poniżej (przykład w dużym uproszczeniu)
const varsFromUsers = [
{key:'gold',value:'200'},
{key:'hp',value:'100'},
{key:'time',value:'800'}
]
gameVars = {};
varsFromUsers.forEach((e)=>{
gameVars[e.key] = e.value;
})
// teraz zmienne gameVars są używane w projekcie.
Zmienne od użytkowników mogą mieć różne nazwy i wartości, ale wszystkie muszą być typu string, problem w tym że w ten sposób nazywając zmienną np. "__proto__" można uzyskać dostęp do jej rodzica/ obiektu nadrzędnego i myślę że jest to mało bezpieczne.
Jak się przed tym zabezpieczyć? Czy może zmienne od użytkowników ładować, przechowywać w inny sposób niż przez obiekt z wykorzystaniem nawiasów klamrowych?