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 过滤器关闭的输出和输入 %9c:

string(3) "%9c"

我期望第一个与第二个具有相同的值。到底发生了什么?

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 回答