Где избежать html? - PullRequest
       1

Где избежать html?

0 голосов
/ 26 октября 2018

Я пишу некоторый код, используя angularjs, node.js и mongodb, который позволяет пользователям добавлять комментарии, которые хранятся в mongodb сервером, работающим на node.js.

Моя стратегия заключается в замене <и> с помощью gt и lt.Где я должен это сделать?Если я сделаю это в клиенте, кто-то может обойти это, отправив сообщение на мой сервер, используя что-то вроде почтальона, хотя gtp-капча может помочь хотя бы немного.

Если я выполняю экранирование на сервере, верно?поздно?Я хотел бы перехватить его в маршруте сервера и выполнить манипуляцию до того, как он будет сохранен в mongo.

Или, в контексте простого хранения комментариев, мне вообще нужно что-то подобное делать?

1 Ответ

0 голосов
/ 26 октября 2018

Вам не нужно совершать побег самостоятельно.MongoDB может отлично обрабатывать специальные символы.Поскольку он не использует SQL, поэтому не стоит беспокоиться о каких-либо SQL-инъекциях.Вы можете просто сохранить то, что пользователь вводит в комментарии непосредственно в БД.

Однако вы можете рассмотреть возможность проверки этих текстов, чтобы некоторые люди не пытались внедрить код JavaScript в комментарии, что приведет к атаке XSS .

Что касаетсяЧто вы хотите делать с данными на стороне клиента, вы должны, если это возможно, всегда обрабатывать эти данные в бэкэнде (на стороне сервера), потому что, как только ваше приложение или сеть доступны для публики, они подвергаются хакерским инструментам.

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