Я не смог найти полное решение по уже заданным вопросам.Хотя злоумышленник может деактивировать JS на стороне клиента, я хотел бы иметь такое же решение в чистом JavaScript для проверки форм.Сервер Node.js.База данных имеет тип NoSQL.У меня есть две формы, которые необходимо проверить:
1) Пользователь подключается через HTTPS, используя форму с адресами электронной почты и паролем.
2) В разделе информационной панели пользователь может создать дополнение в форме, которая содержит:
author (входной текст)
ключевые слова(ввод текста)
WYSIWYG HTML-редактор (то, что вы видите, это то, что вы получаете).Пользователь может выделять жирным шрифтом, изменять цвет текста.Таким образом, выводом будет HTML, который будет храниться в базе данных в виде строки.
загрузка изображений, которые будут сохранены в BLOB-контейнере в облаке.
Из того, что я узнал, я могу использовать регулярное выражение:
a) электронная почта
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());}
b) пароль - я могу только проверить, если он имеетминимум 6 символов и имеет тип string.Как я могу проверить, не является ли строка на самом деле HTML или JavaScript?Будет ли это иметь значение для проверки?
c) автор, ключевые слова - вероятно, то же самое, что и пароль (для проверки не HTML или JavaScript).Автор будет общедоступен в дополнении, поэтому его можно использовать в качестве атаки XSS.
d) WYSIWYG HTML-редактор - здесь сложно, потому что на выходе получается HTML.
e) Изображения - онибудет загружаться только из облака.Нужно ли делать какие-либо проверки при загрузке?
Спасибо!