Archive

Posts Tagged ‘Security’

post_max_size

POST されたデータが post_max_size を超えた場合に、フォームから送信されたパラメーターが上手く取れない現象にあいました。

それは至って当然な反応ですが、プロセス自体は死なないので、パラメーターに応じてヴァリデーションをかけてる場合はそれをすり抜けてしまいます。

その場合の $_REQUEST 変数の挙動を調べていないので、バッファオーバーフローのような攻撃を受けた場合に、中途半端に $_REQUEST に格納されてたりするとセキュリティホールになりえます。

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

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

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

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

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

という具合にします。

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