1
我打算在服務器上使用Gson(http://code.google.com/p/google-gson/),並將JavaScript對象從瀏覽器傳輸到服務器上的Java對象。我將使用Ajax發佈請求。我有點擔心,每個人都可以將Java對象發佈到我的服務器虛擬機。運行在服務器進程中的Java對象將有可能做任何想要的事情。 Gson如何解決這個問題?Gson安全問題
我打算在服務器上使用Gson(http://code.google.com/p/google-gson/),並將JavaScript對象從瀏覽器傳輸到服務器上的Java對象。我將使用Ajax發佈請求。我有點擔心,每個人都可以將Java對象發佈到我的服務器虛擬機。運行在服務器進程中的Java對象將有可能做任何想要的事情。 Gson如何解決這個問題?Gson安全問題
gson/json只是數據,不是代碼。所以沒有人可以將代碼發佈到您的服務器上,只是數據。
當您反序列化json時,您需要指定哪個類(或者您只是直接提取原語或基元集合)來填充數據 - 沒有人可以向您發送json,以便實例化生活在服務器上的任何類。
那麼,它只會在我定義的對象上調用setters?我在他們的網站上看到了一些反思。他們使用反射爲什麼? –
@ avok00:他們使用反射來創建對象......調用構造函數,設置字段,調用setter。重點是,您可以完全控制Gson創建的對象...您可以決定JSON應該反序列化的類,並且可以根據一些簡單的規則完成反序列化。調用者不能以任何方式提供任意代碼來執行。 – ColinD