我看到了对 kohana 旧版本使用 xss clean 的文档 http://docs.kohanaphp.com/general/security
但是如何在 kohana 3.1 中实现这一点 使用 htmlpurifier 以及
的替代方案$this->input->get('my_var','default_value', true);
最佳答案
Rasmus 建议从 Kohana 中删除 XSS 黑名单,以便使用 htmlspecialchars() - HTML::chars()
转义输出,或者使用 HTMLpurifier,以防您确实需要让一些 HTML 进入。
自 3.1 起,Security 默认情况下没有 xss_clean()
方法,您必须安装 shadowhand's HTMLpurifier用于保护输入字符串的模块(通过从 github 添加子模块,将其放入模块中并在 Bootstrap 中启用它)。
模块本身将覆盖默认的安全类并添加使用 HTMLpurifier 的 xss_clean()
方法。为了逃跑。该模块还有一个配置文件,您可以在其中设置应用程序级别的所有内容。由于多种原因,不会“自动”进行输入转义;开销、一致性等。
由于 Request 在此版本中几乎被重写,以匹配 RFC 2616 并获得更强大的 HMVC,因此您将使用 Request::query()
访问查询字符串变量 [ $this->request->query()
在你的 Controller 中],但是在那一侧仍然没有进行转义(每个请求可以有它自己的 header ,POST,GET 等)
逃避当前 POST 变量的最简单方法是:
$safe = Arr::map('Security::xss_clean', $this->request->post());
附注
不要太在意这里写的关于 $this->request->param()
的废话,它仅用于访问匹配的 Route 参数,而不是您的 GET 或 POST 变量。
关于php - Kohana 3.1 中的 XSS 清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662969/