1

开始学习 Python 的Flask web app 框架,还在学习曲线上,所以请多多包涵。

我想知道客户端会话对于安全 Web 应用程序的用途有多合适。从表面上看,有一些严重的问题:

  • 由于所有会话变量都在 cookie 中进行了序列化和编码,因此应该注意它们在其中存储了多少数据,以便将来回传输的 http 数据的大小保持在合理的范围内。
  • 我不确定相同的键/值集是否具有相同的序列化值,但是如果我要在一个会话中获取并存储一个 cookie 值,我不能在另一个会话中将相同的(尽管是加密的)值返回给另一个会话,并使服务器相信这些是真正的会话变量值?用户在一天内被允许做的事情并不意味着同样的事情在另一天被允许。如果这些会话变量值必须始终进行安全验证,那么将它们“保存在缓存中”有什么好处呢?然后,它们的用途只是让我们使用漂亮的 GET URL(即,而不是带有一些参数的丑陋查询字符串)

因此,也许我正在寻找的答案是 Flask 客户端会话的限制,考虑到可能的中间人攻击(当然,对于不安全的 http 会话)或存储 cookie 值的高级恶意用户以便稍后将它们转发回来。

4

1 回答 1

1
  • 我认为您不必担心大小,因为 cookie 无论如何都不能存储超过 4KB 的数据。我非常怀疑你会很容易接近那个。

  • 它与其他会话一样安全,因为您可以将PHPSESSIDcookie 带到其他浏览器并让它像您可以使用它一样工作。没有什么能阻止它。但是有解决此问题的方法,您可以让它在时间限制后过期。例如,请参阅此问题。它有关于这个问题的有用答案。

如果您愿意,您可以随时使用数据库会话。我相信您也可以找到其他实现。

编辑: 这里有一些其他的。

于 2013-05-03T21:09:56.087 回答