React में dynamic JSON configuration को सुरक्षित तरीके से संभालना
2025-04-03
CMS blocks और feature flags अक्सर JSON में आते हैं। बिना validation के इनका सीधा उपयोग security और stability दोनों जोखिम बढ़ाता है।
Threat model
__proto__ pollution, raw HTML injection और eval जैसी risky patterns को स्पष्ट रूप से रोकें।
Safe pipeline
fetch -> JSON.parse -> zod/JSON Schema -> defaults सहित typed props mapping।
const ConfigSchema = z.object({ theme: z.enum(["light", "dark"]) });
const config = ConfigSchema.parse(JSON.parse(raw));Storage
localStorage JSON भी validate करें और schema versioning रखें।
TypeScript
Compile-time types पर्याप्त नहीं; runtime validation remote data के लिए अनिवार्य है।