2017-06-04 47 views
0

我有两个复选框,其中2个不同的值设置为复选框。当用户选中复选框的值将被设置。但在保存之前,如果他检查元素并编辑值设置一个新值并保存到数据库而不是默认值新值保存到数据库。我该如何停止这样做给用户..任何可能的建议?如何使复选框的值不可编辑检查元素

<input name="installation" value="{{$product->installation}}" type="checkbox"> 

<input name="support" value="{{$product->support}}" type="checkbox"> 
+0

如何阻止某人使用浏览器检查器更改复选框的状态?你没有。你可以使用一些'onchange' /'onclick'事件来更新一个不清楚的标志。或者,如果您不希望他们编辑复选框,请不要选中复选框。 –

+0

这同样适用于任何不可编辑的字段,这是渗透测试发现在我曾经工作的网站中缺乏的东西。不应依赖JS计算的值,并在后端代码中重新执行。 –

回答

1

你可以简单地不从复选框的value属性与数据库工作时使用的数据。

例如,在控制器,你可以简单地选中该复选框是否被选中,然后设置任何值,你想:

$product->installation = ($request->has('installation')) ? 'checked' : 'not checked'; 
-1

那么你可以添加一个客户端或服务器端的检查,以确保该复选框的值未被篡改

+0

他们会怎么做呢? – Quentin

+0

那么如果你使用客户端检查,那么你可以添加一个验证函数,当表单被提交时被调用。该功能可以检查复选框的值是否在可接受值的范围内。如果使用服务器端检查,则可以检查发布到服务器的值是否在可接受值的范围内 –

相关问题