- https://github.com/gongo/merciful-polluter/releases/tag/0.0.5
- https://packagist.org/packages/gongo/merciful-polluter
概要
magic_quotes_gpc
のエミュレートを ON にしている時、$_REQUEST
がエスケープされていなかった問題が修正されました。
例
例えば下記のようなサーバーサイドのコードがあるとします。
<?php $request = new Gongo\MercifulPolluter\Request(); $request->enableMagicQuotesGpc(); $request->pollute(); var_dump($_GET); var_dump($_POST); var_dump($_COOKIE); var_dump($_REQUEST);
次にクライアントとして下記コードを実行してみます。
$ curl 'http://localhost/?hoge=ho"ge' -X POST -d "huga=hu'ga" -b 'piyo=pi\yo'
その結果がこちら!
// $_GET array(1) { ["hoge"]=> string(6) "ho\"ge" } // $_POST array(1) { ["huga"]=> string(6) "hu\'ga" } // $_COOKIE array(1) { ["piyo"]=> string(6) "pi\\yo" } // $_REQUEST array(3) { ["hoge"]=> string(6) "ho\"ge" // 修正前は "ho"ge" だった ["huga"]=> string(6) "hu\'ga" // 修正前は "hu'ga" だった ["piyo"]=> string(6) "pi\\yo" // 修正前は "pi\yo" だった }
まとめ
そろそろ enableRegisterGlobals()
とか用意してもいいかもしれない( magic_quotes_gpc
だけ有効化したい、みたいなケースに対応)