簡體   English   中英

Laravel-8 Livewire-2 在通過電線傳輸數據時被黑:點擊

[英]Laravel-8 Livewire-2 was hacked when passing data through wire:click

當我通過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>

請! 告訴我。 這個問題將如何解決。

簡短的回答是,這就是所有表單的工作方式——無論是 Livewire、標准 HTTP 表單還是通過 Ajax。 這可以通過用戶傳遞給您的服務器的任何數據來完成,這是正常的、預期的行為。 沒有辦法完全阻止它。 用戶可以操縱他們自己發送的任何數據。

這里的教訓是不要相信用戶輸入! 要對此采取行動,您需要對所有傳入請求進行授權和驗證。 這必須在您接受請求的服務器上完成(在 PHP 中的意思),而不是在客戶端(如 JavaScript)中完成,因為客戶端可以像您剛剛看到的那樣由用戶操作。

Laravel 提供策略和保護,因此您可以非常輕松地驗證用戶是否有權執行給定的操作並更改或刪除他們嘗試操作的記錄。 這使得 Laravel 項目中的驗證和授權變得非常容易,但沒有什么神奇之處 - 您必須為所有請求實現它,用戶可以在應用程序中傳遞數據或調用操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM