当前位置: 首页 > 面试题库 >

使Flask中的旧会话无效

巢嘉志
2023-03-14
问题内容

如何在Flask中创建一个新的干净会话并使当前会话无效?

我使用make_null_session()还是open_session()


问题答案:

我使用这种方法尽可能解决了这个问题*:

  • 覆盖SecureCookieSessionInterface.save_session(),从覆盖版本复制代码,而不是调用它。
  • 当覆盖版本的save_session()call时save_cookie(),使其在session_expires30分钟后传递一个参数。这会导致超过30分钟的Cookie无效。
  • save_session()经常使更新的覆盖版本成为会话变量,以确保cookie及其session_expires时间得到定期重写。(我将这个会话变量命名为'_refresh'并在其中存储当前时间,然后仅在自上次存储的时间以来经过了几秒钟之后才重写它。此优化避免了在每个HTTP请求上重写cookie。)
    在自定义项中复制Flask代码save_session()会使此方法变得难看且脆弱,但是必须更改传递给的参数save_cookie()。如果Flask使这变得更容易,或者至少实现了针对重放攻击的防护措施,那就太好了。


 类似资料:
  • 与Cookie不同,会话数据存储在服务器上。 会话是客户端登录到服务器并注销的时间间隔。 需要在此会话中进行的数据存储在服务器上的临时目录中。 与每个客户端的会话分配一个会话ID。 会话数据存储在cookie顶部,服务器以加密方式签名。 对于这种加密,Flask应用程序需要一个定义。 会话对象也是一个包含会话变量和关联值的键值对的字典对象。 例如,要设置会话变量,请使用语句 - 要删除会话变量,请

  • 您知道,web应用程序需要会话或cookie来进行身份验证。我尝试用Vue.js和Flask微框架构建web应用程序,例如ERP或CRM。 我很困惑。如何使用会话?让我们假设我们在烧瓶中有这样的代码: 而我们的前端代码应该是这样的: null

  • 问题内容: 在CentOS 6.3上与Python 2.7,Apache + mod_wsgi一起运行 当我在localhost上时,一切正常。但是,当我在Azure中的vm上运行代码时,我看不到会话信息在页面之间保留。 基本上我的看法是: 打印输出为: 我对apache的wsgi配置是: 我设置了secret_key: 我尝试同时设置SERVER_NAME,但这无济于事: 关于如何进行更多调试的

  • 问题内容: 我正在研究的一个项目使用Spring 2.5和JPA,并将Hibernate用作提供程序。 我的DAO类扩展了JpaDaoSupport,因此我使用getJpaTemplate()方法获取了JpaTemplate。 后端数据库可以通过我的应用程序或第三方应用程序进行更改。 当第三方应用程序更改数据库(主要是配置数据更改)时,我需要为应用程序的用户提供一种使所有JPA会话无效并重新加载新

  • 问题内容: 在导入flask时,我们导入模块等。 是一种字典,可以使用会话进行访问。 现在,我尝试清除尝试构建网站时使用的所有垃圾变量。 关于stackoverflow的答案之一使用了类似清除会话内容的命令。但是,这样的命令会产生错误,表明不存在这样的命令。 谁能为我指出每次关闭服务器或关闭网站时如何清除和如何清除会话? 问题答案: 我将这样的会话与flask一起使用,它确实起作用。我虽然不使用,

  • 问题内容: 当我连接到我的站点时,出现以下错误: RuntimeError:会话不可用,因为未设置任何秘密密钥。将应用程序上的secret_key设置为唯一且秘密的内容。 下面是我的服务器代码。 如您所见,我确实设置了应用密钥。我究竟做错了什么? 还有其他会话选项吗? 其他信息:在Linux Mint上运行Python 2.7 全贴: 问题答案: 在你的情况下,会话实现会引发异常,这是使用Flas