该xss_clean()函数不会删除所有 HTML,它会删除/替换被视为危险的特定内容,例如<script>标记.
http://codeigniter.com/user_guide/libraries/security.html
XSS过滤器查找常用技术来触发Javascript或其他类型的代码,这些代码试图劫持cookie或执行其他恶意攻击.如果遇到任何不允许的情况,则通过将数据转换为字符实体来使其安全.
有人<p>在您的页面中注入标记,虽然可能不需要,但实际上并不是一种有效的攻击.你必须指定你想用它做什么.在许多情况下,您将需要已xss_clean()编辑的HTML输出.
这听起来像你想要的htmlspecialchars()或strip_tags()(注意:这两个非常不同的东西).如果要对HTML进行编码,还可以使用CI html_escape():
echo html_escape($this->input->post('question'));
Run Code Online (Sandbox Code Playgroud)
如果您想要HTML输出而不是实体,只需单独使用XSS过滤器:
echo $this->input->post('question', TRUE);
echo xss_clean($user_input);
Run Code Online (Sandbox Code Playgroud)