私は、mongodbインスタンス上の異なるデータベースに接続するアプリケーションを持っています。異なるデータベースは異なるクライアント用です。私は、単一のユーザーを使用して異なるデータベースにログインすると、クライアントのデータが侵害されるかどうかを知りたいと思っています。また、このユーザーがrootになる必要がありますか? readWriteロールにトリックを行います。私は、Javaバックエンドを介してデータベースに接続することになります。mongodbにrootユーザーを使用することは危険ですか?
答えて
これに対する直接的な答えはありません。それはリスクとコスト便益についてです。
あなたが任意のデータベースに接続するために同じデータベース・ユーザーを使用する場合は、クライアントデータの分離は、アプリケーションでビジネスロジックにはるかに依存します。コードのいずれかの部分だけがクライアントデータベースに接続することを決定できれば、あるクライアントからの要求は、(私の経験によれば、最終的には)別のクライアントのデータベースで終了する可能性があります。たとえば、多くの人があなたのアプリを長時間開発した場合、誰かが間違いを犯すなど、いくつかの要因が起こりやすくなります。
より安全なオプションは、変更が厳密に監視されているため、ほとんど変更されない中央の部分またはコンポーネントを持つことです。各クライアントセッション(またはリクエスト)に対して、クライアントに資格情報を与えて接続するデータベースに転送します。このようにして、開発者による将来の間違いは範囲が限定され、間違ったデータベースを使用することはできません。そして、我々は、意図的でないアプリケーションの欠陥については言及していない。攻撃者がこれを行う可能性があり、これははるかに可能性が高い。強力な執行と分離が行われている場合、ある種のアプリケーションの脆弱性がある場合でも、適切なデータベースに限定されているため、あるクライアントの悪意のあるユーザーが他のクライアントのデータにアクセスできない場合があります。 (この場合であっても、アプリケーションはすべてのクライアントデータベースの資格情報にアクセスする必要があるので、アプリケーションやサーバーを完全に侵害すると、すべてのクライアントデータが攻撃者に失われることになります。 )
これを行うかどうかは、リスクに依存する必要があります。あなたが答えるための1つの質問は、クライアント間のデータ違反が起こった場合にどれくらいの費用がかかるかということです。それが大したことでなければ、おそらくビジネスロジックの分離は大丈夫です。それがビジネスを失うことを意味するなら、それは間違いなく十分ではありません。
接続に使用されているユーザーはrootでなければなりません。間違いなく最低限の特権の原則に従えば、必要なものだけの権利を持つユーザ、つまりそのデータベースに接続し、他には何もしません。
- 1. 危険なテキストを評価するのは危険ですか?
- 2. ユーザーに自分のセッションIDを公開することは危険ですか?
- 3. EVAL()。これは危険ですか?
- 4. オープンソースサービスは危険ですか?
- 5. instanceofは危険ですか?
- 6. string.Emptyを使用すると危険ですか?
- 7. NHibernateと流暢なNHibernate - これらを使用すると危険ですか?
- 8. マルチスレッドアプリケーションでシングルトンを使用する危険性は何ですか?
- 9. MD5を使用するのは危険ですか?
- 10. この危険なコードですか?
- 11. egrepを使って$ _GETと$ _POSTを危険に使用する
- 12. MongoDBの$はどのくらい危険ですか?
- 13. これは私のRailsアプリケーションにとって危険ですか?
- 14. 危険なプレイブックにrootパスワードを入れる方法
- 15. memorystreamをプライベートフィールドとして使用するのは危険ですか
- 16. 危険!
- 17. 自動WebクローリングにSelenium WebDriverを使用すると危険ですか?
- 18. Sys :: SigAction :: timeout_callの使用は危険ですか?
- 19. urllibで危険なウェブサイトを読むことは安全です
- 20. オープンソースのWebフレームワークは危険ですか?
- 21. DelphiのExit文は危険ですか?
- 22. アセンブリ言語は危険ですか?
- 23. 私のHTMLフォームは危険ですか?
- 24. strtol、strtodは危険ですか?
- 25. 現在の危険なプロセスの変数を使用して、危険なホストからコマンドを実行する
- 26. このstatic_castについては何が危険ですか?
- 27. LINQ to SQLとOR Designerを使用する危険なビジネス?
- 28. 危険ですか?イベントについて
- 29. Javascriptのクライアント側でUUIDを作成することは危険ですか?
- 30. Googleのパスワードを.git/configに含めることは危険ですか?