dポイントプレゼントキャンペーン実施中!

PHPでWEB管理者専用のニュースリリースページ更新フォームの作成を検討しています。
(ページ新規作成・編集と、その更新情報をトップページの新着情報欄でお知らせ。)

PHPプログラム自体のXSSなどのセキュリティ対策はもちろんですが、
セキュリティを考慮し、更新フォームは管理者専用にベーシック認証+管理者PCのIPのみ許可するアクセス制限を設けたディレクトリに設置予定です。

さらにセキュリティリスクを下げるべく、更新フォームPHPで入力した情報で
HTMLページを生成し、一般ユーザーにはその静的なHTMLのページを公開しようと考えています。
(トップページおよび個々のニュースリリースページも静的HTML。PHPページは管理者ページだけ)

一般ユーザーにPHPページを見せないだけでも、かなり安全かと思いますが
この方法で考えられるセキュリティリスクおよび対策は他にどんなものがあるでしょうか?

例えば、
・管理パスワードの漏洩→頻繁にパスワードを変更する
・IP許可している管理者PCの乗っ取り→ウィルス対策・ログ監視

そもそもサーバーへ不正侵入でもしない限り、PHPのページを一般に公開していなければ、
PHPがインストールされてるだけでは何か悪さをされる可能性はないのでしょうか?

PHPは脆弱性が多いという情報はたくさんでてきますが、プログラミングの問題であって
XSSやSQLインジェクションなどの対策さえきちんとしておけば、
サーバーにPHPをインストールすること自体にそれほど心配する必要はありませんよね?

A 回答 (3件)

> サーバーにPHPをインストールすること自体にそれほど心配する必要はありませんよね?



インストールすること自体では無いといっていいでしょう。

質問中のPHPを他の言語に置き換えても、得られる回答にさほど大きな違いは無いと思いますよ。

なんだかとてもナーバスになっていますね。
安全性の確保は利便性とはトレードになってしまう場合が多いので、
自分達にとって、驚異となるものは何か?を定義してみてはどうでしょうか?

不必要な対策を講じることにより、やたらと複雑で誰もわからなかったり、サービスとして体をなさなかったりする場合もありますよ。

僕の場合ですが、想定外の入力によって、サービス外のリソースにアクセスできると驚異になるという観点から、
・入力値で許容するものを明確化する
・必要の無いサービス・プログラムは入れない。
・外部連携は、必要な範囲で絞る
・作業手順をなるべく簡素化する
・その画面での関心ごとを明確にする。( PHP でいうところの 不要な require, inclde はしない構成にする等 )
ということをシステムに織り込んでいきます。

システムは(関連性を持った)系なので、プログラムだけの対応では穴は塞がらないという意識からです。
# System という単語自体 "系" と訳しますもんね。

上の僕の場合は”誰が、何を”に偏ってます。
”いつ、どこで”などに制限をかけることで、サービス自体が枯れていく(だれも使わない)状態にならないようにとの配慮からです。
誰も使わないと管理から外れ(忘れ)やすく、それもまた驚異となりうるので。

まぁ状況によってポリシーは変わっていくので、場に合わせた対応を取るのが一番でしょうね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。とても参考になりました。

サーバーへPHPを導入するにあたって、
「PHPをインストールするだけで脅威になりえるのでは?」という管理者からの懸念に、
私自身も浅学なためサーバーの詳しい部分まではわからず、的確に答えることができずにもやもやしておりました。

ご教示頂いたアドバイスを参考に、対応を検討してみます。大変丁寧なご回答ありがとうございました。

お礼日時:2010/12/07 17:47

ふと思っただけなんで聞き流してください。



>更新フォームPHPで入力した情報で
HTMLページを生成し、一般ユーザーにはその静的なHTMLのページを公開しようと考えています。

PHPのページを一般ユーザーに使わせないのなら、ローカルにXAMPPとか入れて、そこで生成したHTMLをアップロードすればいいんじゃないかな~とか思ったり。
まぁ、ネット上のリソース使って生成するから、そういう仕様にしてるんだろうとも思いますけど。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ローカルでXAMPP入れたり、マクロを組むなりしてページを生成する方法も検討したのですが、
そこまでするならサーバーのPHPを使ったほうが便利だろうということになりました。

たしかに一般ユーザーにPHPを使わせないのであればローカルで完結させるのも一つの手ですね。

お礼日時:2010/12/07 18:00

No1さんの回答にほぼ同意です。


心配する必要は限りなくゼロです。

しかしセキュリティに関してはパラノイアであるべき、疑いまくれ、という言葉もありますので、
質問者様の姿勢はとても良いと思います。
それからセキュリティポリシーをある程度定義してそれに従うというのがいいと思います。
明示化されていれば複雑になってもいいはず。

どれくらいのレベルで保つのかについては、やはりバランスです。
それから時たまphpの更新情報・バグフィックスなど追いかけるのもいいですよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。とても参考になります。

たしかにセキュリティについては絶対というのが無いので、疑ってかかるのは大切だと思います。
セキュリティポリシーを定義するというのも良さそうですね。一度詳細を検討してみます。

どうもありがとうございました。

お礼日時:2010/12/07 17:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!