3

これが以前に尋ねられた場合は申し訳ありませんが、検索を行ったところ、私の質問に対する答えを見つけることができませんでした。

Web サイトのコンテンツを MySQL データベース ( と呼びましょうcontent) に保存しており、Web サイト用の単純なログイン システムを作成する必要があります。したがって、ユーザー名、パスワード、権限などを保持するある種のusersテーブルを作成する必要がありcontentます.新しいデータベースに保存されますか?2 番目のデータベースにそれを含めることの欠点は、1 つではなく 2 つのデータベース接続を使用する必要があることです。

くだらない質問かもしれませんが、よろしくお願いします!

4

4 に答える 4

2

別のデータベースを使用する必要はありません。これは、完全に異なる目的を持つデータを取得した場合に使用します。たとえば、会社 A にはデータベースがあり、会社 B にはデータベースがあります。

単に 2 つの異なるデータベースを使用するだけでは、アクセスするために 2 つの異なるデータベース接続が必要になるわけではないことに注意してください。DB にログインしているユーザー ID に適切なアクセス権がある限り、次のことができます。

SELECT onedatabase.table.field, someotherdatabase.table.field
...
于 2012-12-12T20:56:37.050 に答える
0

いい考えだね。セキュリティ上の理由から、ユーザーがまったくログインしない方がよい場合があります。アイデアは、あなたが管理する中央の管理者アカウントを持ち、ユーザーにコンテンツをメールで送信させることです。そうすれば、他の誰もアクセスできないことを確認できます。

于 2012-12-13T19:32:20.493 に答える
0

機密情報を別のデータベースに移動することは、SQL インジェクションの影響を制限するため、優れた多層防御戦略です。これは、障害の分離と計画の原則から外れています。これは、機密性の高い医療情報または財務情報を保護するための一般的な方法です。多くの場合、これらの個別のデータベースはさらに一歩進んで、情報を暗号化された状態で保存します。

MySQL での SQL インジェクションは非常に制限されており、クエリをスタックすることはできず (例: '; drop table ...)、MySQL のファイル権限がないとシェルを取得できません。残っている有用な唯一のことは、union selectまたはサブセレクトを使用して資格情報を取得し、他のテーブルまたはデータベースにアクセスすることです。個別のユーザー アカウントと個別のアクセス許可を持っている限り、攻撃者は機密データベースにアクセスしているクエリで SQL インジェクションを見つける必要があり、攻撃対象領域が減少します。SQL インジェクションで機密情報にアクセスできないと、この攻撃の有用性が大幅に低下します。

また、パラメータ化されたクエリを使用する必要があります

于 2012-12-12T21:57:26.357 に答える
-1

あなたが言うように、これを行うには、複数のデータベース接続を維持する必要があります。データベースをサンドボックス化することは良い考えですが、ユーザー登録のあるデータベースを利用した Web サイトの 99% は、ユーザーをコンテンツと共に保存します。

于 2012-12-12T20:56:26.197 に答える