php - Kohana 3.1 中的 XSS 清理

标签 php kohana

我看到了对 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 中启用它)。

模块本身将覆盖默认的安全类并添加使用 HTMLpurifierxss_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/

相关文章:

php - 如何在Kohana ORM中处理belongs_to关系

version - 我正在使用哪个版本的Kohana?

php - 什么是缓存标记?

PHP MYSQL 插入数据时出错

javascript - Ajax过滤器: Select + Radio button

javascript - 使用当前选定的项目实现自动建议/选择 UI+ 单独的 div

javascript - 如何通过AJAX传递表单值和个体值?

php - jQuery AJAX 请求因 PHP 异常而失败

php - doctrine2 : in a one-to-many bidirectional relationship, 如何从反面保存?

php - Laravel 首先或者创建异常