Это новый вопрос ie, но я не могу найти простой ответ на этот вопрос. Многие советуют избегать любых пользовательских данных, которые отображаются на HTML. Но это оставляет меня с уродливыми HTML сущностями, которые появляются в представлении пользователя.
Например: в моем приложении CRUD в NodeJS, допустим, я поместил этот механизм экранирования в промежуточное ПО (используя библиотеку валидатора):
for(x in req.body){
req.body[x]=validator.escape(req.body[x])
}
Хорошо, похоже, работает , но допустим, что пользователь пишет это в сообщении в блоге: «Я предсказываю X> Y».
Теперь это будет отображаться как «Я предсказываю x '>'; y», когда пользователь поднимает сообщение. .
Итак, как мне использовать экранирование для защиты моего приложения, позволяя моему пользователю просматривать такие символы, как '>'? Или это означает, что данные уже экранированы и мне не нужен валидатор? Я использую мопса для шаблонов.