【问题标题】:laravel how to secure passing data from blade to controllerlaravel如何保护从刀片到控制器的数据传递
【发布时间】:2019-01-12 00:32:14
【问题描述】:

如果用户在 chrome 中使用检查元素更改 id、价格等,我如何确保数据不被更改,我知道我不能阻止用户使用检查元素并进行更改,但我不希望这些更改有影响 我在刀片中使用它来使用 ajax 从按钮传递数据

<button id="Item_root" data-id="{{$product->product_id}}"  data-detailsfield="{{$product->product_details}}" data-titlefield="{{$product->product_title}}" data-pricefield="{{$product->product_price}}" data-photofield="{{ asset('images/' . $product->product_image) }}" class="Item_root Button_root">

从检查元素用户可以看到它是这样的:

    <button id="Item_root" data-id="19" data-detailsfield="Serves 6-8 People" data-titlefield="Package # 8U" data-pricefield="105.99" data-photofield="http://localhost/crisp/public/images/Chicken-Fajitas.jpg" class="Item_root Button_root">
   <div class="Item_image" style="background-image:url('http://localhost/crisp/public/images/Chicken-Fajitas.jpg');"></div>
   <div class="Item_itemContent">
      <div class="Item_topSection">
         <span class="Item_name styles_just-right styles_base styles_spacing-base">Package # 8U</span>
         <span class="Item_price styles_just-right styles_base styles_spacing-base styles_semibold">$105.99</span>
      </div>
      <div class="Item_description styles_small styles_base styles_spacing-base styles_line-default">Serves 6-8 People</div>
   </div>
</button>

【问题讨论】:

  • 永远不要依赖用户对输入的操作,只需将验证添加到您的控制器并只接收您想要的内容

标签: php laravel


【解决方案1】:

为了防止用户在检查元素中更改值并将其再次发送到控制器,您应该在输入字段中使用 CSRF_TOKEN

看看这里:

在 laravel 5.6 中

<form method="POST" action="/profile">
   @csrf
...
</form>

Laravel 也有 Validation 来检查你定义的所有输入类型。

这是文档:

Laravel Validation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-13
    • 2017-09-03
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2017-07-31
    相关资源
    最近更新 更多