【问题标题】:Does Laravel's Validation class Sanitize?Laravel 的验证类会消毒吗?
【发布时间】:2014-07-31 19:44:46
【问题描述】:

我无法在文档中找到有关 Validation 类是否对数据进行清理的任何信息。出于显而易见的原因,每个人似乎都使用 Validation 类,但我没有看到任何清理。

以具有 2 个输入字段、名称和描述的表单为例。在这种情况下,只需要名称。处理表单提交:

$validator = Validator::make(
    Input::all(),
    array(
        'name' => 'required|min:2'
    )
);

假设验证没有错误,根据大多数教程(和文档),我会简单地使用;

SomeModel::create(array(
    'name' => Input::get('name'),
    'description' => Input::get('description')
));

这个类会清理数据吗?或者我是否可以期望数据与我在表格中输入的数据完全相同?要求至少 2 个字符很难进行清理。

感谢任何方向。

【问题讨论】:

  • 这就是为什么它被称为“验证”类,它 Validates ,它不 Sanitize :这是两个非常不同的概念,必须是分开处理。
  • 显然。但是每个教程,包括那些直接在 Laravel 站点上的教程,都跳过了清理,只使用了验证类。消毒是验证的一种形式,因此是个问题。
  • 检查Taylor's answer

标签: php validation laravel-4 sanitize


【解决方案1】:

据我所知,Laravel 不进行消毒。

将此添加到composer.json

"frozennode/xssinput": "dev-master",

然后将config/app.php添加到providers

'Frozennode\XssInput\XssInputServiceProvider'

还有aliases

'Input'           => 'Frozennode\XssInput\XssInput'

然后这会做一些消毒

SomeModel::create(array(
    'name' => Input::get('name'),
    'description' => Input::get('description')
));

github 上的结帐库 https://github.com/FrozenNode/XssInput

这样,您无需更改代码。做吧

composer update

【讨论】:

  • 谢谢,我会检查一下。
猜你喜欢
  • 2013-08-06
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2017-03-07
  • 2018-12-17
  • 2013-10-27
相关资源
最近更新 更多