Синглтоны НЕ плохо. Это плохо, когда вы делаете что-то глобально уникальным, что не является глобально уникальным.
Однако существуют «службы области приложения» (подумайте о системе обмена сообщениями, которая заставляет компоненты взаимодействовать) - это CALLS для одноэлементного, класс «MessageQueue», который имеет метод «SendMessage (...)».
Затем вы можете делать следующее со всех сторон:
MessageQueue.Current.SendMessage (new MailArrivedMessage (...));
И, конечно же, выполните:
MessageQueue.Current.RegisterReceiver (this);
в классах, которые реализовать IMessageReceiver.
Спасибо вам за это обсуждение. Тем не менее, я хотел добавить деталь.
@Frank van Puffelen,
Вы упомянули фишинг-атаку. На самом деле есть способ защитить это.
Если вы входите в консоль API-интерфейса googleAPIs, у вас есть возможность заблокировать, с какого HTTP-реферера ваше приложение будет принимать запрос.
Это должно позволить только домену с белым списком использовать ваше приложение.
Это также описано здесь в контрольном списке запуска firebase: https://firebase.google.com/support/guides/launch-checklist
Возможно, документация по firebase может сделать это более видимое или автоматически блокирует домен по умолчанию и требует, чтобы пользователи разрешали доступ?
Снова, спасибо большое!
Что касается белого списка для мобильных приложений, где доменное имя не применимо, Firebase имеет
1) SHA1 fingerprint
для приложений для Android и
2) App Store ID and Bundle ID and Team ID (if necessary)
для ваших приложений iOS
, которые вам нужно настроить в консоли Firebase.
С этой защитой, поскольку проверка не только, если у кого-то есть действительный ключ API, домен Auth и т. д., но также он исходит из наших авторизованных приложений и domain name/HTTP referrer in case
в Интернете.
Сказано, что нам не нужно беспокоиться, если эти ключи API и другие параметры подключения будут доступны другим.
Для получения дополнительной информации, https: // firebase. google.com/support/guides/launch-checklist
Тот факт, что кто-то знает ваш URL-адрес, не является угрозой безопасности.
Например: у меня нет проблем, говоря вам, что мой банк размещает свой веб-сайт на bankofamerica.com, и он говорит там протокол HTTP. Если вы также не знаете учетные данные, которые я использую для доступа к этому сайту, зная, что URL-адрес не подходит вам.
Чтобы защитить ваши данные, ваша база данных должна быть защищена с помощью:
Все это описано в документации Firebase, посвященной Security & amp; Правила , которые я настоятельно рекомендую.
. При использовании этих правил безопасности единственный способ, с помощью которого чужое приложение может получить доступ к данным в вашей базе данных, - это если они копируют функциональность вашего приложения, пользователи заходят в свое приложение вместо вашего и подписывают / читают / записывают в вашу базу данных; по сути, фишинг-атака. В этом случае в базе данных нет проблем с безопасностью, хотя, вероятно, время для привлечения некоторых органов.
https://tinderclone.firebaseio.com/
и https://tinderclone.firebaseio.com/profiles.json
. Это настоящая база данных о бомбе. Можете ли вы разработать приложение, создав форму регистрации и форму для входа в систему с помощью электронной почты. Поскольку мое приложение позволяет регистрироваться с помощью электронной почты после регистрации, сможете ли вы читать все данные? Я задам еще один вопрос. благодаря
– rattanak
16 February 2016 в 08:25
".read": false
не позволит кому-либо увидеть данные. Вероятно, вы захотите разрешить немного больше, но все зависит от вашего прецедента. Защита данных содержится в документации Firebase, посвященной Security & amp; Правила .
– Frank van Puffelen
16 February 2016 в 08:53