【问题标题】:Laravel-8 Livewire-2 was hacked when passing data through wire:clickLaravel-8 Livewire-2 在通过电线传递数据时被黑客入侵:点击
【发布时间】:2021-07-26 15:31:13
【问题描述】:

当我通过 wire:click="data('text')" 在刀片文件中传递数据时,它工作正常。

但是如果我像 wire:click="data('new text')" 这样更改刀片文件中的值,那么这个值就会改变。
这是我的刀片文件

<button wire:click="delete('1')" type="button">Delete Record</button>

但是当我更改刀片文件中的值并单击按钮时,该值发生了变化。

<button wire:click="delete('10')" type="button">Delete Record</button>

请!告诉我。这个问题将如何解决。

【问题讨论】:

    标签: laravel laravel-livewire


    【解决方案1】:

    简短的回答是,任何和所有表单都是这样工作的——无论是 Livewire、标准 HTTP 表单还是通过 Ajax。这可以通过用户传递给您的服务器的任何数据来完成,这是正常的预期行为。您无法完全阻止它。用户可以操纵他们自己发送的任何数据。

    这里的教训是不要相信用户输入!要对此采取行动,您需要对所有传入请求进行授权和验证。这必须在您接受请求的服务器(在 PHP 中的意思)而不是在客户端(如 JavaScript)上完成,因为任何客户端都可以由用户操作,就像您刚刚看到的那样。

    Laravel 提供了策略和保护,因此您可以非常轻松地验证用户是否有权执行给定的操作以及更改或删除他们尝试执行操作的记录。这使得 Laravel 项目中的验证和授权变得非常容易,但并没有什么神奇之处——您必须为用户可以在应用程序中传递数据或调用操作的所有请求实现它。

    【讨论】:

      猜你喜欢
      • 2021-07-04
      • 2011-06-03
      • 2021-08-29
      • 2021-01-28
      • 2021-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      相关资源
      最近更新 更多