2016-12-05 120 views
0

我正在尋找一種方法來阻止HTML表單的用戶修改,在此基礎上例如:Grails的防止HTML修改

「用戶」實體有一個枚舉角色(用戶,管理員等)並有一個UserController的是顯示ag:首先,最後和電子郵件的形式。控制器的操作user.properties = params。

用戶如何使用Firebug或Chrome Web開發人員修改HTML表單並將文本字段名重命名爲角色並輸入「Administrator」並將被授予管理員權限。

有useToken =「true」和withForm-closure,但這似乎阻止用戶雙重提交相同的表單。除此之外,會話還適用於多個服務器,因此不具備可擴展性。

我正在使用Grails 2.3.6。有沒有辦法阻止這樣的事情,除非不使用xxx.properties = params?

回答

1

您可以給出允許的屬性列表。舉個例子:

user.properties['first', 'last', 'email'] = params 

你應該總是給出安全列表。在Grails文檔中搜索「數據綁定和安全問題」。

+0

感謝您的好意見。但是沒有辦法確保表單沒有被修改,例如。散列所有字段名稱?我想這不是useToken的目的,對吧? – sullivan

+0

是的你是對的。 useToken將防止雙表單提交和跨站點請求僞造。 –