如何保护公共Laravel livewire属性不受操纵?

如何保护公共Laravel livewire属性不受操纵?,laravel,laravel-livewire,Laravel,Laravel Livewire,我正在用一个对象$form装载我的组件,我需要在请求之间访问该对象。 $form中的数据不是机密数据,但不应被篡改,因此我想将其设置为受保护的属性。虽然在请求之间只保留public属性,而将其暴露给前端 如果可能的话,我怎样才能防止对公共财产的操纵 我试过支票 public function updating($key, $value) { if($key === 'form') return; } 但我不认为这真的有什么作用 此外,在我的情况下,使用会话不是一种选择 有什么想法吗?我

我正在用一个对象
$form
装载我的组件,我需要在请求之间访问该对象。
$form
中的数据不是机密数据,但不应被篡改,因此我想将其设置为受
保护的
属性。虽然在请求之间只保留
public
属性,而将其暴露给前端

如果可能的话,我怎样才能防止对公共财产的操纵

我试过支票

public function updating($key, $value)
{
    if($key === 'form') return;
}
但我不认为这真的有什么作用

此外,在我的情况下,使用会话不是一种选择


有什么想法吗?

我认为您有以下选择:

  • 不要将数据存储为公共属性,只需将其传递给 在
    render()
    方法中查看

    public function render(){
       return view('Livewire.nameofyourview ', [
          'form' => YourDataSource::get()
       ]);
    } 
    
    这将在与组件的每次交互中重新蚀刻数据。您可以像以前一样通过
    $form
    在模板中访问此项。 确保将
    $form
    作为公共属性删除。使用此解决方案无法操作$form数据表单客户端/用户站点

  • 如果您需要您的用户/客户机操作验证,请使用验证规则 数据,但只有您期望的方式

    protected $rules = [
        'form.name' => 'required|min:6',
        'form.email' => 'required|email',
    ];
    

  • 使用Laravel cache在请求之间保留数据。这项技术 如果无法从源中重新提取数据(如 它已作为参数(
    )传递给Livewire组件


  • 我认为您有以下选择:

  • 不要将数据存储为公共属性,只需将其传递给 在
    render()
    方法中查看

    public function render(){
       return view('Livewire.nameofyourview ', [
          'form' => YourDataSource::get()
       ]);
    } 
    
    这将在与组件的每次交互中重新蚀刻数据。您可以像以前一样通过
    $form
    在模板中访问此项。 确保将
    $form
    作为公共属性删除。使用此解决方案无法操作$form数据表单客户端/用户站点

  • 如果您需要您的用户/客户机操作验证,请使用验证规则 数据,但只有您期望的方式

    protected $rules = [
        'form.name' => 'required|min:6',
        'form.email' => 'required|email',
    ];
    

  • 使用Laravel cache在请求之间保留数据。这项技术 如果无法从源中重新提取数据(如 它已作为参数(
    )传递给Livewire组件


  • 您需要在前端访问$form吗?不知道这是否回答了您的问题您需要在前端访问$form吗?不知道这是否回答了您的问题