2017-06-04 63 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

那麼如果你使用客戶端檢查,那麼你可以添加一個驗證函數,當表單被提交時被調用。該功能可以檢查複選框的值是否在可接受值的範圍內。如果使用服務器端檢查,則可以檢查發佈到服務器的值是否在可接受值的範圍內 –

相關問題