如果JSON对象/字符串中注入了不受信任的数据(例如插入了附加密钥),那么GSON是否执行安全的序列化来分隔和转义不受信任的数据?
请将这个链接 (虽然它在C#上)看作是注入JSON的一个例子。
下面是我如何解析接收到的数据:
T object = gson.<T>fromJson(sampleString, modelObject);我并不知道安全序列化或分隔不可信数据是如何工作的。非常感谢与此有关的建议/参考。
发布于 2016-06-08 18:36:27
Gson将解析sampleString中的任何内容,并将其应用于T实例。sampleString是一串JSON。Gson无法知道JSON是否“注入了不受信任的数据”,因为Gson不知道什么是“不可信”,也不知道什么是“不可信”。
然而,Gson只会关注定义在T及其超类上的字段。如果sampleString是一个JSON对象,并且有人入侵了该JSON以包含一个名为bogeyman的密钥,而T没有一个bogeyman字段(而且没有继承),那么bogeyman将被忽略,因为Gson没有地方放置它。
因此,请确保编写T时只接受有效的键。也许T只有有效键的字段,或者您将其他字段标记为transient,或者采取用户指南中概述的其他步骤。
https://stackoverflow.com/questions/37709275
复制相似问题