Рекомендации / обходной путь для проблемы XSS при использовании eval () для функции - PullRequest
0 голосов
/ 07 января 2019

Я работаю над проблемой, в которой мы должны предотвратить атаку 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)', он будет предупрежден после загрузки этой пользовательской страницы. Как мне поступить, если есть требование проверки состояния, которое принимает только строковые входы? Любая помощь приветствуется. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...