2012-05-29 19 views
0

我看到他/她的信息創建一個用戶對象的方式有兩種:玩!框架 - 模型默認與顯式構造函數?

1)顯式構造 - 我稱之爲Application.getUserInfo() 方法,其相應的視圖具有這樣的形式供用戶輸入自己的註冊信息: 名,用戶名,密碼,然後調用Application.createUser(String name, String email, String password),然後調用顯式構造函數new User(name, email, password)。點擊提交按鈕將會調用Application.createUser()方法。

2)如果我調用​​方法,相應的視圖是否有User對象(由隱式默認構造函數創建)?在這種情況下,我可以只讀 user.name,user.email,user.password 這樣我就不必定義一個顯式的構造函數。

有人能告訴我方法2)是否有效?如果是的話,與1)相比有沒有什麼缺點?

回答

2

兩種方法都是有效的,但方法二可能會成爲一個安全問題。

使用方法#2,您必須指定哪些屬性可能未綁定(使用@NoBinding註釋的黑名單),而在方法#1中,您明確指出哪些數據將被綁定(白名單)。

傳統安全軟件系統應該是建立一個圍繞白名單......以這種方式「阻止除我指定的一切」每個防火牆的工作原理...

如果您的應用程序僅僅是一個Intranet應用程序,它可能還好如果它是一個面向成千上萬用戶的真實世界應用,我會(個人)採用方法#1。