【问题标题】:Laravel XXS Filter - and passing "withInput" back to formLaravel XXS 过滤器 - 并将“withInput”传递回表单
【发布时间】:2015-01-30 20:00:26
【问题描述】:

我有点困惑,刚刚为 Laravel 安装了一个 XSS Filter Package。 就像文档中提到的那样,我启用了自动过滤,工作正常。

但是当我使用以下代码处理表单输入时:

    $input = Input::all();
    $validation = Validator::make($input, Comment::rules());
    // do some validation

    // not passed:
    return Redirect::back()
            ->withErrors($validation)
            ->withInput();

比“坏”代码被传回表单。为了测试我添加了

->withInput($input);

现在“坏”代码已被过滤。

现在我的问题是为什么?当我不向它传递输入时,withInput 的来源是什么?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这是 laravel 的 withInput 函数 -

    public function withInput(array $input = null)
    {
        $input = $input ?: $this->request->input();
    
        $this->session->flashInput($input);
    
        return $this;
    }
    

    如您所见,它检查input 变量是否为空,然后运行一个函数来获取所有输入。

    下面的包没有覆盖 request->input() 函数,所以它不会对其产生任何影响。

    您应该将其保留为默认设置,因为您的用户不希望看到他们的数据被转义,除非您知道自己在做什么,否则您应该在幕后做某事。

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 2015-10-29
      • 1970-01-01
      • 2013-08-17
      • 2015-03-20
      • 2022-08-02
      • 2014-01-14
      • 2021-01-19
      • 1970-01-01
      相关资源
      最近更新 更多