应用程序引擎会话安全问题



我正在应用程序引擎的会话中存储用户状态(已登录/user id)。知道其他用户UserId的用户是否可以操作他们的cookie并以其他用户身份登录。

我应该采取什么措施来防止这种情况发生?

一个用户不可能直接访问另一个用户的数据。但是,一个用户有办法窃取另一个用户的登录会话。但这并不是GAE特有的。

参见:

  1. http://en.wikipedia.org/wiki/Session_hijacking
  2. http://en.wikipedia.org/wiki/Cross-site_request_forgery(CSRF)

在开放的wifi热点上,劫持很容易发生。一个常见的解决方案是使用SSL托管您的网站。

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

XSS可以用来使这些攻击更加有效,所以也要防止它。

对于这些类型的攻击,请让您的用户会话迅速过期。

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

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

最新更新