作成コードを作register_globals off
-
08-06-2019 - |
質問
していま継承したかレガシィPHPのコードは何が書かれた時でした標準的に使用 register_globals
(PHP4.2.0、このディレクティブはデフォルトはoffで放22.月2002).
いい悪いセキュリティが有効になります。問題はどうでしたすべての場所のコードがいを利用する必要が $_GET
または $_POST
?私のしか味わえないと思っていをセットにしたエラー報告のdvdに初期化されていない変数およびその試験の各部分のサイトです。はあります。されている試験は各コードのサイトまたはPHPの警告を行うようにファイルとなりました。
解決
設定した場合エラーを報告すE_ALL、警告、エラーログにて未定義の変数の完全ファイル名と行数と仮定すログファイル).しかし、警告する場合のみですが、未定義だったと思いまして試験をそれぞれのコードパスです。走行phpからのコマンドラインがあるようには見えませんの助けます。
あるデバッグツールをxdebugこなかったもできる。
他のヒント
書いた スクリプト されている" トークナイザ ます。その美すがたところ、うまくいったので、コードベースですね。ダウンロードいただけま使う CodeSniffer.
きを手動で'偽の登録グローバル変数の効果がある。(一部を掴んだことからosCommerceフォークと呼ばれxoops)
// Detect bad global variables
$bad_global_list = array('GLOBALS', '_SESSION', 'HTTP_SESSION_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_REQUEST', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_FILES', 'HTTP_POST_FILES');
foreach ($bad_global_list as $bad_global ) {
if ( isset( $_REQUEST[$bad_global] ) ) {
die('Bad Global');
}
}
// Make global variables
foreach ($_REQUEST as $name -> $value) {
$$name = $value; // Creates a varable nammed $name equal to $value.
}
もんたいへ戻る様コードをより安全に、少なくとも追加することで、グローバル設定変数のパスベースurlの悪いわゆるグローバル変数一覧です。
このままで簡単にコンパイルのリストを全て使用されるget/post変数ですがお願いするものでありますの発生という$return_url、$_REQUEST['return_url];