0

目前我正在研究一个将基本身份验证与檐口/金字塔框架相结合的项目。

从日志中我观察到,每次访问 url 时,使用的凭据都会被检查两次。由于在我们的用户案例中,这确实涉及大量数据库检查,因此它是(意外)DoS 攻击的潜在目标。

在我看来,我用工厂定义了一个檐口服务。在我的应用程序设置中,我将金字塔提供的 BasicAuthenticationPolicy 配置为资源密集型检查作为身份验证的回调在应用程序设置中,我配置了金字塔提供的 ACLAuthorizationPolicy 以进行授权。

所以我想知道我错过了什么,因为我真的很想阻止第二次检查的发生。(我应该以某种安全的方式将其缓存在请求对象上吗?)

4

1 回答 1

1

通过研究代码发现这是预期的行为。

仅当使用 authenticated_userid 属性时才会触发此行为(我这样做)。

通过装饰器“缓存”对我的身份验证函数的调用解决了这个问题。这应该没问题,因为将通过函数参数引用相同的对象。

文档可以在金字塔包中找到pyramid/authentication.py

于 2014-09-22T09:59:17.477 回答