3

私は、最初の本格的な Web アプリケーションである Web アプリケーションを設計しています。異なる権限 (RBAC/ACL) を持つユーザーが何人かいます。ご想像のとおり、権限管理とセキュリティが少し心配です

これが、Web アプリケーションでは、ユーザーが通常データベース ユーザーではなく、データベースに格納されるのはなぜなのか疑問に思っていた理由です (たとえば、Joomla!)。これは安全でない認証方法だと思います。データベースへの接続は常に、db に対する完全な権限または非常に高い権限を持つ db ユーザーを使用して行われるため、できることとできないことは、RBAC/ACL 承認を記述することによって Web アプリケーションによって管理されます。レイヤー(つまり、ユーザー、特権レベルなどを保持するDBにテーブルがたくさんあります)。

概念的な観点から、データベース内のデータを保護するために、より多くのデータベース ユーザー (権限のレベルごとに少なくとも 1 つ、または Web アプリケーションのユーザーごとに 1 つ) を使用することをお勧めします (もし私がセキュリティ違反があり、攻撃者がデータベースの接続情報を見つけた場合、攻撃者の権限はハッキングされたユーザーのアカウントの権限によって制限されます)。

このアプローチは実装が非常に面倒ですが、一方でより安全です。

このアプローチが使用されないのはなぜですか?それは単に利便性の問題ですか、それともセキュリティとコーディングの容易さの間の適切なトレードオフを求める問題ですか? または、2 つの異なるスコープを対象とした 2 つの異なるもの (db とアプリケーション ユーザー) を混乱させて混在させているだけかもしれません。

質問がばかげている場合は申し訳ありませんが、勉強するときにDBユーザーと権限について学び、実際のソフトウェアが(明らかに)別の方法で行われるのを見ると.

ありがとう!

4

1 に答える 1