PHP_PHP チュートリアルでの Oracle の組み込みセキュリティ機能の使用

WBOY
リリース: 2016-07-13 17:03:38
オリジナル
831 人が閲覧しました

今日のほとんどの Web アプリケーションには、少なくともいくつかの基本的なセキュリティ戦略が必要です。たとえば、パスワードで保護されたコンテンツを提供するサイト、管理者のバックエンドのみを備えたサイト、ブログや個人雑誌、電子商取引サイト、企業イントラネットなどです。


この種の Web アプリケーションを構築するための最も一般的な設計アプローチは、セキュリティ ポリシーを Web アプリケーションのビジネス ロジックに統合することです。ここで、ユーザーがデータベース内の特定のデータにアクセスする権限を持っているかどうかをアプリケーションが判断します。このシナリオでは、データベースの役割は単にデータを保存し、要求に応じて提供することです。つまり、Web アプリケーションがデータベースに特定の情報を提供するよう命令すると、データベースはユーザーの権限を確認せずにそのコマンドを直接実行します。


この記事では、Oracle の組み込みセキュリティ機能を活用してデータベース レベルでアプリケーション セキュリティ ルールを強制し、アプリケーション全体のセキュリティを向上させる方法を説明します。副次的な利点として、データベース内で直接データ アクセスを保護すると、アプリケーションのセキュリティが向上するだけでなく、複雑さの軽減にも役立ちます。


データベース側のセキュリティの要件


Web アプリケーションからのデータ アクセスの制御についてはどうすればよいでしょうか?ほとんどの場合、問題はありませんが、特に関連するデータがミッションクリティカルではない場合や極秘の場合には、これは良い解決策です。この方法は、多くの書籍やオンライン リソースで使用されています。実際、ある人気のある PHP/MySQL の本では、「ユーザーを追加したり、複雑な権限を追加したりすると、続行する前にさらに多くの情報のチェックが必要になり、MySQL の実行速度が遅くなる可能性がある」ため、アプリケーションごとに複数のデータベース ユーザー アカウントを作成することを明示的に推奨していません。これは事実ですが、データベース ロジックにセキュリティを統合するという考えを諦める前に、考慮すべきことがいくつかあります。次の例を見てみましょう。


コンテンツ管理システム (CMS) を作成するとします。データベースは、Web サイトで公開されたコンテンツを保存するために使用されます。データのほとんどは公開されており、匿名の Web ユーザーが読み取ることができますが、データを変更する編集のみが許可されています。単一のデータベース アカウントを使用してデータベース内のレコードにアクセスして変更し、管理者専用ページへのアクセスをパスワードで保護することで PHP コードでセキュリティを制御します。


Web アプリケーションのパブリック側がパブリック検索フォーム (つまり、十分に厳密にコーディングされていないフォーム) などの SQL インジェクション攻撃の被害に遭った場合、侵入者はパブリック アカウントがアクセスできるデータベース オブジェクトに対して任意の SQL ステートメントを実行できる可能性があります。 。もちろん、この場合、データは公開されているため、SELECT ステートメントを実行しても大きな問題は発生しません。ただし、パブリック権限とガバナンス権限は同じデータベース アカウントを使用するため、侵入者は UPDATE ステートメントや DELETE ステートメントを実行したり、データベースからテーブルを削除したりすることもできます。


これを防ぐにはどうすればよいでしょうか?最も簡単な方法は、パブリック データベース アカウントのデータ変更権限を完全に制限することです。 Oracle がこの問題をどのように解決しているかを見てみましょう。


Oracle セキュリティの基本的な概要


Oracle Databaseは、表、ビュー、プロシージャなどの特定のデータベース・オブジェクトへのアクセスの制御から、個々の行または列のデータへのアクセスの制御まで、データ・アクセスを制御するためのさまざまな方法をWeb開発者に提供します。明らかに、Oracle で利用できるすべてのセキュリティ機能やオプションについては、この記事の範囲を超えています。ここでは、あまり詳しくは説明せず、Oracle データ アクセス セキュリティの最も基本的な側面についてのみ説明します。


認証とユーザーアカウント


権限


キャラクター


認証とユーザーアカウント。 他のデータベースと同様に、Oracle へのアクセスを要求する各ユーザー (データベース アカウント) は認証される必要があります。検証は、データベース、オペレーティング システム、またはネットワーク サービスによって実行できます。基本認証 (パスワード認証) に加えて、Oracle は Kerberos、Cyber​​Safe、RADIUS などの強力な認証メカニズムもサポートしています。


役割。 Oracle ロールは、権限の名前付きセットです。ユーザー アカウントにアクセス許可を直接付与することもできますが、ロールを使用すると、特に多数のユーザーを管理する必要がある場合に、ユーザー ガバナンスを大幅に簡素化できます。小さくて管理しやすいロールを作成し、セキュリティ レベルに基づいてユーザーに 1 つ以上のロールを付与すると、非常に効率的になります。権限の変更がいかに簡単かは言うまでもありません

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630916.html技術記事今日のほとんどの Web アプリケーションには、少なくともいくつかの基本的なセキュリティ戦略が必要です。たとえば、パスワードで保護されたコンテンツを提供するサイト、管理者専用のバックエンドを備えたサイト、ブログ、個人...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート