Мое очень простое приложение будет использовать PouchDb на стороне клиента и CouchDB на стороне сервера. Каждая запись будет сначала сохранена локально в PouchDB, которая затем будет реплицирована с CouchDB на стороне сервера. Каждый пользователь приложения будет иметь собственную клиентскую базу данных на своем устройстве, а также собственную облачную базу данных со своей собственной аутентификацией.
Этот пост ( Архитектура приложения при использовании CouchDB / PouchDB ) весьма полезен, но я все еще пытаюсь понять, какие шаги мне нужно предпринять, чтобы обеспечить, по крайней мере, насколько это возможно, чтобы ввод от пользователя не вреден.
Возможно, я делаю больше, чем на самом деле, так как вполне вероятно, что любой плохой актер уничтожит только свои собственные данные (и кого это волнует?), Но я все же хотел бы знать, как дезинфицировать пользователя введенные данные для базы данных noSQL. Опять же, пост, который я цитирую выше, содержит отличную стартовую информацию, но я до сих пор не могу найти ничего, что давало бы советы о том, на что обратить внимание, каких персонажей убежать и т. Д.
Из моего ограниченного опыта работы с SQL стало понятно, что вам приходилось наблюдать за тем, кто пытается вставить HTML или какой-либо javascript, но я не знаю, какие последовательности данных могут как-то быть вредными для CouchDB. Одна статья, которую я прочитал, предполагает, что нужно:
- избегайте создания специальных команд JS, объединяя скрипт с пользовательским вводом
- проверять пользовательский ввод, используемый в серверных командах JS с регулярными выражениями (отличная идея ... но как?)
- избегать оценки. используйте json.parse