App Engine会话安全问题

时间:2012-12-03 15:00:39

标签: java security google-app-engine session

我在app引擎的会话中存储用户状态(登录/用户ID)。知道其他用户UserId的用户是否可以操纵他们的cookie并以其他用户身份登录。

我应采取哪些措施来防止这种情况发生?

2 个答案:

答案 0 :(得分:2)

一个用户无法直接访问其他用户的数据。但是,有一种方法可以让一个用户窃取另一个用户的登录会话。但这不是GAE特定的。

请参阅:

  1. http://en.wikipedia.org/wiki/Session_hijacking
  2. http://en.wikipedia.org/wiki/Cross-site_request_forgery(CSRF)
  3. 在开放的wifi热点上很容易发生劫持。一个常见的解决方案是使用SSL托管您的网站。

    当用户登录您的网站并在同一浏览器中打开恶意网站时,就会发生CSRF。有各种方法可以防止这种情况发生。一种常见的解决方案是在HTML表单中包含随机validation token。此外,设置HTTP响应headerX-Frame-Options: sameorigin并且检查请求标头X-Requested-With对于非ajax命中不等于“XMLHttpRequest”。

    XSS可用于使这些攻击更有效,因此也可以防止它。

    对于这些类型的攻击,请尽快让您的用户sessions expire

答案 1 :(得分:1)

我不是安全专家。但是我学到了什么:

  • 使用HTTPS
  • 不使用框架
  • 在表单中为每个请求使用新的CSRF令牌
  • 并将您的状态保存在数据存储区中,而不是使用会话cookie存储区。