金字塔与檐口和基本auth结合使用密码检查两次,如何预防?

时间:2014-09-17 08:42:19

标签: security pyramid http-basic-authentication cornice

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

从日志记录中我发现,每次访问url时,都会检查使用过的凭据两次。因为在我们的用户案例中,这确实涉及大量数据库检查,所以它是(非预期的)DoS攻击的潜在目标。

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

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

1 个答案:

答案 0 :(得分:1)

通过研究代码找到这是预期的行为。

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

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

可以在金字塔包pyramid/authentication.py

中找到文档