Я работаю над проблемой, в которой мы должны предотвратить атаку XSS на функцию, которая позволяет пользователю создавать собственный вид страницы. Пользователь может записать условие обработки блока, и на основании результатов оценки блоки отображаются. Проблема, с которой мы сталкиваемся: когда пользователь передает условие в виде строки, функция eval примет и выполнит условие в JS, которое привлекает XSS-атаки. Я хотел бы понять, есть ли обходной путь для обработки вредоносного кода, который не должен выполняться во время выполнения сценария?
HTML (take inputs and store in DB)
Condition: <input type="text" name="evalCondition">
JS (while rendering)
let shouldVisible = eval(evalCondition); // based on value of 'shouldVisible' the block will be rendered
Итак, если я сохраню 'alert (1)', он будет предупрежден после загрузки этой пользовательской страницы.
Как мне поступить, если есть требование проверки состояния, которое принимает только строковые входы? Любая помощь приветствуется. Заранее спасибо.