Безопасность взлома синхронизации pouchdb / couchdb? - PullRequest
0 голосов
/ 19 марта 2019

Может ли хакер изменить мои данные, которые помещаются в автономный pouchdb, а затем синхронизируются с онлайн-couchdb?Да, на сервере будет включен ssl.

В моей текущей настройке.vue.js spa для развертывания pwa.

const response = await this.postService(
          {
            _id: newId,
            dateCreated: date,
            updated: [],
            viewed: [],
            viewedCount: 0,
            approved: true
          },
          sync
        );

Я отправляю этот obj в функцию, чтобы поместить obj в локальную базу данных pouch, а затем синхронизируюсь с online couchdb.Теперь, если кто-то может отредактировать утвержденные данные obj: true, у меня будет много проблем при попытке запретить пользователя.

postService(dataObject, sync) {
      // to do make sure couchdb had validation function
      var self = this;
      // to do this.$store.dispatch("PostServiceSynced", false);
      return postsOffDb
        .put(dataObject)
        .then(function(response) {
          // to do enable sync 
          // if (sync) {
          // sync offline to online db
          postsOffDb.replicate
            .to(postsOnDb, {
              live: true,
              retry: true,
              back_off_function: function(delay) {
                if (delay === 0) {
                  return 1000;
                }
                return delay * 3;
              }
            })
            .on("change", function(change) {
              // yo, something changed!
              console.log("posts replicate change", change);
            })
            .on("complete", function() {
              // yay, we're done!
              console.log("postsOffDb replicated");
            })
            .on("error", function(err) {
              // boo, something went wrong!
              console.log("err", err);
              return response;
            });
          // }
          return response;
        })
        .catch(function(err) {
          console.log("postService err", err);
          }
          return err;
        });
    },

Мой обходной путь - отправить объект в промежуточное программное обеспечение express.js и добавить данные по умолчанию, например, утверждено: true там.Затем отправьте его на couchdb.Но тогда я упустил бы причину использовать службы синхронизации couchdb, которые я мог бы также использовать с mongodb?Кто-нибудь знает, как?

1 Ответ

0 голосов
/ 29 марта 2019

Комментарии Флимзи помогут ответить на вопрос наверняка.Я наткнулся на группу Google , которая также имеет хорошую информацию

...