java - App Engine session 安全问题

标签 java security google-app-engine session

我在 App Engine 的 session 中存储用户状态(登录/用户 ID)。知道其他用户 UserId 的用户是否有可能操纵他们的 cookie 并以其他用户身份登录。

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

最佳答案

一个用户不可能直接访问另一个用户的数据。但是,一个用户可以通过多种方式窃取另一个用户的登录 session 。但这不是特定于 GAE 的。

参见:

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

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

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

XSS 可用于使这些攻击更加有效,因此也要防范它。

一般来说,对于这些类型的攻击,请让您的用户 sessions expire迅速地。

关于java - App Engine session 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13685881/

相关文章:

python - 无法使用 web2py 的 DAL 写入 AppEngine DataStore

java - Android Parcelable final

java - 如何删除数组中的指定字符并将元素复制到另一个数组

java - 抵消单纯形噪声返回值

python - Webapp2 session 在请求之间丢失

java - 如何正确添加/操作实体组中的数千个子项?

java - Android 搜索 View 不调用搜索 Activity

security - 没有 secret 保存在数据库中的用户帐户激活电子邮件是否合理安全?

javascript - 如何安全地保存客户端的状态?

image - 在 Ubuntu 中基于图像 (PNG) 的内容创建一个唯一的哈希值?