Codeigniter输入 - > post()删除html标签吗?

som*_*ing 3 php codeigniter

使用$ this-> input-> post(); 在Codeigniter中,删除网站用户可能输入的任何html和javascript,或者你必须使用htmlspecialchars();?

Inc*_*ito 8

$this->input->post() 仅包含帖子数据..

您可以$this->input->post(NULL, TRUE);按照手册调用,以返回通过XSS过滤器过滤的数据.

你可以在这里看到究竟发生了什么,它是否基本上使用fetch_from_array重新构建$ _POST数组.这将调用XSS安全模块$this->security->xss_clean($array[$index]);(如果将XSS过滤器设置为true).

如果XSS过滤器没有捕获到某些内容,则会暴露您的代码.

我通常不会在使用它之前过滤我的原始输入数据,而只是在它即将被使用时,以及以特定的方式.

如果您在输入中过滤恶意内容几乎是不可能的,因为它被设计为作为输出运行.

  • 当您打印到HTML文档时,请确保您的特殊字符是html编码的
  • 调用SQL时,请确保在没有SQL注入攻击的情况下运行参数化查询
  • 当您进行系统调用时,不要让他们控制您的系统.

正如我在回答的评论中所提到的,XSS输入过滤器不足以防止攻击.

如有疑问,请咨询OWASP.