Archive

Posts Tagged ‘database’

WebアクセスのあるDBの防御力UP

別に大したことではないですが DB の防御力 +10 くらい。「ぬののふく」から「かわのよろい」程度が目安。そんなことはどうでもいいですね。

ありがちな設計として、全てのテーブルに特に権限を設けずに、Perl や PHP などから DB に接続する際に接続するユーザーをデータベースを作成したユーザーにしますよね?

この状態ですと、プログラムは DB を好き勝手にいじれます。この状態から、

・アクセスユーザー用、カスタマー用、作業員用、管理者用などのアカウントをデータベースに追加。
・各テーブルに各アカウント向けに SELECT オンリーなど権限を GRANT で追加。
・プログラム(その時の画面遷移)によって DB に接続するユーザーを切り替え

という具合にします。

これで、万一プログラムに穴があって SQL インジェクションを喰らっても、DROP TABLE とかは最低限防げます。phpBB のようなプログラムに eval 関係の致命的な穴があったら意味無いですが。