私は誰かが書いた古いサイトで働いていて、彼らはコードのどこかにextract($_POST)
に相当する何かをしました。しかし、彼らは関数抽出を使用しませんでした。動的に作成された変数はどのように見つけられますか?
このアプリケーションはもともとPHP3用に設計されていましたが、それはPHP4に移植されましたが、現在はPHP5に移植しています。
どのような機能があるのでしょうか?または、それを見つけ出す方法はありますか?私はPHPStormの 'GoTo - > Declaration'を使ってみましたが、それはそうではありませんでした....
私は変数のドキュメントをスキャンしましたが、他の参照はありません。 extractと等価な関数です。それはregister_globals設定かもしれ
foreach ($_POST as $key => $value)
{
${$key} = $value;
}
それはそれでした!ありがとうございました、それはコードを探して私の頭をしていたが、それはコードではなかった、それはphp.iniの設定でした! – Mattisdada
ようこそ。 register_globals設定をオンにすると、誰でもHTTPリクエストでクエリ文字列(またはPOST/Cookies)に引数を追加でき、コード内ですぐに設定変数になるため、セキュリティ上の大きな欠陥が発生する可能性があります。それは非難され、オフにすることを強く推奨される理由です。 – Paulpro
私は各コードを調査し、依存関係を取り除いていますが、今のところ、サーバーをバックアップして実行するだけです。しかし、巨大な助け:)。 – Mattisdada