認証を行うために Codeigniter 関数にデータを送信する標準のログイン フォームがあります。問題は、データが関数に到達する前に HTML エンティティが取り除かれているように見えることです。 、しかし、config.php のパラメーターは Codeigniter 関数に関連しているだけだと思っていました。IE $this->input->post NOT $_POST に関連しています。得た
$config['global_xss_filtering'] = FALSE;
フォームを送信すると、入力フィールドに送信するデータは次のようになります。
$_POST['user'] = 'user';
$_POST['password'] = 'password%100';
参考までに、私のフォーム開始タグは次のとおりです。
<form method="POST" action="<?=site_url('/log-in')?>">
データをテストするために次の機能を実行しました。
echo "<pre>";
print_r($_POST);
echo sha1('userpassword%100') . '<br />';
echo sha1($_POST['username'] . $_POST['password']) . '<br />';
echo sha1($this->input->post('username', FALSE) . $this->input->post('password', FALSE)) . '<br />';
echo "</pre>";
次の出力が得られます。
Array
(
[username] => user
[password] => password0
)
ad45e6412dd3cec23e47bbb48c874cdcfd6d39e7
fa3279bde5d6aba9ed77c6e5b071ff8dde741b92
fa3279bde5d6aba9ed77c6e5b071ff8dde741b92
したがって、一番上のハッシュは正しいハッシュですが、実際に渡されるデータは html エンティティを取り除いているように見えます。パスワード フィールドから IE %10 - $_POST['password'] は password%100 NOT password0 にする必要があります。
正しい、エスケープされていないデータを取得する方法について誰かにアドバイスできますか?
前もって感謝します、クリスチャン