[PHP-users 12992] Re: PHP+PostgreSQLに特定のIPのみ接続させる
Katsuyuki Maeda
php-users@php.gr.jp
Tue, 04 Feb 2003 17:31:24 +0900
前田@nanetです。
#元記事書かれた方がどうこうじゃなくて、
#一般的な話として読んでください。
ここで話題に上がっているように、PHP経由でdatabaseを扱って、
データベースの中には公開情報と非公開情報が混在しているという
アプリケーションは少なくないと思います。
ちょうど別スレッドで「SQLコマンドインジェクション」の話が
話題になっていますが、十分に注意していてもSQLコマンドを
注入される可能性がありますし、wwwユーザの権限を奪取される
可能性も、減らすことはできても否定することは難しいと思います。
この辺りを考慮に入れると、
・ユーザーに公開しているアプリケーションは、wwwユーザの
権限で動いている(モジュール版)。
・ひょっとすると、wwwユーザの権限は奪われるかも知れない。
という仮定をして、
データベースに格納するテーブルは、wwwユーザにどうしても
必要な権限のみに留めて、コマンドラインかcron、管理者向けの
CGIプログラム(wwwユーザじゃない権限で動く)で、転記なり何なり
の処理をするのが良いように思います。
例えば、ユーザー情報の登録画面を実装するのに、wwwユーザに
読み出し権限を与える必要は無いはずで、追加の権限があれば良い
筈です。
PHPに限りませんが、そもそも、wwwユーザに与えちゃいけない
権限を与えているWebアプリケーションは非常に多い気がします。
wwwユーザ権限を取得されても少なくとも最低限のセキュリティが
確保できる作りを目指したいところです。
結局、PHPに閉じた世界ではなくて、スキーマの設計を含めて
広い部分を考えないとセキュリティ向上させるのは難しい様です。
PHPよりもメタになってしまいましたが、suExecみたいな仕組みが
使えない中でのセキュリティ確保をどうやっていくか…という手法の
議論に繋がるとうれしいです。
--
Nagasaki Network Service (http://www.nanet.co.jp/)
kei@nanet.co.jp <Katsuyuki Maeda> (http://www.nanet.co.jp/~kei/)
kei-neverread@nanet.co.jp (for spam ONLY ゴミ箱直行便)
「終わらないプロジェクトはない。終わっちゃうプロジェクトはあるけど。」