【问题标题】:CSRF token generation in GWT RequestFactory based app基于 GWT RequestFactory 的应用程序中的 CSRF 令牌生成
【发布时间】:2013-07-23 23:09:29
【问题描述】:

在 POST 请求中包含 CSRF 预防令牌并通过覆盖 DefaultRequestTransport 和 RequestFactoryServlet 在服务器上对其进行验证似乎很简单。

但是,我还有一个问题:如何生成令牌并首先将其发送给客户端?

很可能,很可能,我错过了一些明显的东西。我假设我需要在服务器上创建会话时创建令牌,将其存储在会话中并将其传递给客户端。

然后,客户端将令牌存储在 cookie 中,并从那时起将令牌传递到请求标头中。

是否有某种过滤器可以用来提供令牌?

【问题讨论】:

    标签: gwt csrf requestfactory


    【解决方案1】:

    如果你使用 RPC,你可以阅读这个document,它有实现它的示例代码。

    对于 RF,此question 可能会有所帮助。

    【讨论】:

    • 谢谢,是的,我已经看到了这个问题,并且我了解如何将令牌传递回服务器进行验证。让我难过的是如何首先生成令牌。当然令牌必须在服务器上生成并在某个时候传递?否则服务器如何知道令牌是否合法?还是我太密集了?
    • 我将使用Filter,此过滤器将获取客户端在标头中发送的令牌,并根据存储在会话对象中的最后一个用户令牌对其进行验证。然后发出一个新的,存储在会话中并在响应中发送一个 cookie。客户端将在下一个请求中使用新令牌。
    • 对不起,我很确定我的速度很慢并且在这一点上遗漏了一些明显的东西。所有这些解决方案都依赖于客户端发送与存储在服务器会话中的令牌相匹配的令牌。客户端首先如何获得令牌?
    • 客户端获取token读取cookie,如果cookie没有,客户端可以发送一个void请求,以便过滤器第一次设置它。您也可以使用隐藏图像或脚本,其 src 指向服务器中设置第一个令牌的 servlet。
    【解决方案2】:

    服务器在第一次请求时生成一个随机令牌,通常将其包含在脚本的下载中。

    【讨论】:

      猜你喜欢
      • 2014-11-02
      • 2014-06-20
      • 2010-12-20
      • 2014-07-19
      • 2021-11-27
      • 2014-01-21
      • 2021-10-17
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多