gpt4 book ai didi

java - 使用 GWT RPC 时的安全性

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:25 25 4
gpt4 key购买 nike

我在 Google Web Toolkit 中有一个像这样的 POJO,我可以从服务器检索它。

class Person implements Serializable {
String name;
Date creationDate;
}

当客户端进行更改时,我使用 GWT RemoteServiceServlet 将其保存回服务器,如下所示:

rpcService.saveObject(myPerson,...)

问题是用户不能更改 creationDate。由于 RPC 方法实际上只是对服务器的 HTTP POST,因此可以通过更改 POST 请求来修改 creationDate

一个简单的解决方案是创建一系列 RPC 函数,如 changeName(String newName) 等,但是对于一个包含许多字段的类,每个字段都需要许多方法,并且将是一次更改多个字段效率低下。

我喜欢拥有一个 POJO 的简单性,我可以在服务器和 GWT 客户端上使用它,但需要一种安全的方法。有什么想法吗?

编辑

我正在重新提交赏金以尝试查看是否还有其他想法。也许我最初的问题过于关注 GWT 的细节。实际上,我认为对于任何使用 JavaBeans 在安全(servlet 容器)和不安全(网络浏览器)环境之间传递数据的系统来说,这是一个普遍的问题。

编辑 2

此外,为了清楚起见,我使用字段 creationDate 作为问题的示例。实际上,我正在使用的代码在许多不同的领域更加复杂。

最佳答案

我建议您保留单一的 RPC 方法,并使用像 Dozer 这样的 POJO/bean 映射器或 Gilead .

  • 使用 Dozer,您可以创建一个 class-mapping用于将属性从一个对象复制到另一个对象。如果您未在类映射中指定属性,则不会复制该属性。
  • 与吉利德一起,@ReadOnly transport annotation应该足够了。

附带的好处是您不需要更改数据访问层(假设您有一个)。无论您是否使用 ORM,是否使用关系数据库都没有关系。

关于java - 使用 GWT RPC 时的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com