0

アプリケーション/コントローラー/welcome.php

<?php
class Welcome extends CI_Controller {

    public function index()
    {
        if ($val = $this->input->post('test'))
        {
            var_dump($val);
        }
        else
        {
            $this->load->view('welcome_message');
        }
    }
}

アプリケーション/ビュー/weclome_message.php

<form action="" method="POST">
<input type="text" name="test" />
<input type="submit" />
</form>

XSS フィルターをオンにして出力し、%9c を入力:

string(1) "œ"

XSS フィルタを OFF にして出力し、%9c を入力:

string(3) "%9c"

最初のものは2番目のものと同じ値になると思っていました。正確には何が起こっているのですか?

4

1 に答える 1

0

私はそれが原因で起こっていると思います

$str = rawurldecode($str);

xss_clean 関数で。346行目を見てください:

https://github.com/EllisLab/CodeIgniter/blob/develop/system/core/Security.php

その行にコメントを付けて、何が起こるかを確認してみてください。

于 2013-11-02T21:25:44.907 に答える