スレッド表示 | フラット表示〕 全トピック 923 件中 12 番目 次≫ ≪前

PHP-Nukeとregister_globals=On

created: 2010-11-28 06:36 | modified: 2010-11-28 15:16 | reply: 2

[4390] PHP-Nukeとregister_globals=On

user: hiro | created: 2010-11-28 06:36
レンタルサーバーでPHP-Nukeを使ったサイトを運用してます。
サイトのセキュリティーが心配なのでanalyze.phpというスクリプトでチェックしてみましたがregister_globalsがOnなので危険と表示されました。

しかし一方でphp.netによるとOffにするのは現在は推奨されないとの話もありました。
http://jp.php.net/manual/ja/security.globals.php

結局どう運営するのが一番いいのでしょうか?
リスクを回避する方法等もあれば教えていただけると幸いです。

MySQLは4.026、PHPは4.4.8です。PHP-Nukeは8.0でNuke付属のフォーラムのbbtonukeは使わずphpBB3をインテグレートして使ってます。

他人様が作ってくれたスクリプトをアップロードして少しカスタマイズして使ってるだけでphpに関する知識は皆無に等しい初心者です。
reply: 4391 返信 編集 削除

[4391] Re. PHP-Nukeとregister_globals=On

user: ゆうじ | created: 2010-11-28 11:10
こんにちは。

まずこちらの内容ですが、
「△この機能は、・・・」の「この」が
何を指してるのか不明確で誤解を招いているようです。
http://jp.php.net/manual/ja/security.globals.php

ページタイトルが「グローバル変数の登録機能の使用法」なので
register_globals = Off を非推薦というよりも
グローバル変数の使用を非推薦といってるのだと思われます。

ユーザーが入力した値などを参照するために
「グローバル変数」と「スーパーグローバル変数」の2種類があり、
前者を使うのはもうやめときましょう。
ということだとおもいます。

register_globals = On だと
どんな値もグローバル変数に受け入れてしまうので
制作者の意図しない結果をまねく確率が高くなりますが、
register_globals = Off だと
スーパーグローバル変数だけに受け入れることになるので
出どころがはっきりしてるぶん取るべき対策箇所を絞り込める
といった違いがあります。

「なんでもこい」より限定出来る方が安全なので
スーパーグローバル変数の使用とあわせて
register_globals = Off が推薦されてます。

register_globals がどちらであったとしても、
外部から来る値が想定の範囲内かどうかをチェックすることは
プログラムとして必須、スクリプトの制作者が注意をはらうべき事です。
このあたりの理解がないまま(または手を抜いて)、
register_globals = On の環境でグローバル変数を使ったり
チェックのあまいスクリプトを運用してはダメですよ。
まずは register_globals = Off 環境で運用しましょう。

ということです。


運用する立場で出来る対策をまとめるとこんなとこです。

register_globals = Off にしましょう。

register_globals = On 環境でしか動かない古いプログラムは使わない。

攻撃と対策のイタチごっこは終わることがないので
更新され続けてる(この先も保守が見込まれる)プログラムをつかいましょう。
可能ならば、PHP4 → PHP5への移行も検討。

プログラムのアップデートをまめにチェックし更新する。

セキュリティ関連のニュースを購読する。



PHP-Nuke と phpBB はなじみがなく
個々の対策具合は残念ながらわかりません。

最新の情報を早く仕入れ、すぐに手を打てるスキルや人材を
確保しておくというのが運用で一番肝心な対策でしょうね。
Parent: 4390  reply: 4392 返信 編集 削除

[4392] Re.PHP-Nukeとregister_globals=On

user: hiro | created: 2010-11-28 15:16
ゆうじさん

早速のご回答ありがとうございます。
わかりやすい説明で理解できました。

レンタルサーバーのPHPとMySQLが少々古いのが前から気になってるところですが、お借りしてるところで違うサーバーに引っ越すことは出来るのですが手間もかかりそうだし不安も多いのでそのままにしてます。

ユーザー側ではphp.iniを触れないと思いますので調べたら.htaccessで設定できるとありましたし、海外のphp-nukeの解説サイトでもoffにしても問題ないとありましたのでその方法で設定してみました。

まだいろいろ試してみたわけではないですがとりあえず問題なく動いてるように見えます。

ちなみにpublic_html直下の.htaccessに
php_flag register_globals off
の一行を加えました。

offにした場合の起こりうる不具合はどういったことが考えられるのでしょうか?
Parent: 4391  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 923 件中 12 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑