- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 Python 和 Flask 构建了几个相关的应用程序。一个是身份验证应用程序,用户可以在其中登录并接收 token 。其他是业务应用程序,它们基于 token 对用户进行身份验证和授权。当然需要对 token 进行签名以防止篡改。因为我使用的是 Python,所以 itsdangerous 模块是一个自然的选择。但它并没有提供一些看似重要的功能。编写自己的安全代码很少是一个好主意,但我觉得不得不在它的危险之上添加我自己的代码以解决一些限制。我想知道:
一个。下面的担忧是否成立?b.如果是这样,谁能为解决这些问题的 Python/Flask 推荐一个好的开源安全解决方案?
我最关心的两个限制是:
缺乏加密。 Itsdangerous 可以签署 token 但不能加密它。 token 可能包含用户不应看到的信息,例如他或她已被授予的角色列表。
泄露有关过期 token 是否有效的信息。持有 token 的恶意用户可以使用 itsdangerous 来区分从未有效的 token 和曾经有效但已过期的 token 。如果这样的用户只能说出 token 无效,而不说明原因,那就更好了。
最佳答案
- Lack of encryption. Itsdangerous can sign the token but can't encrypt it. The token might contain information the user shouldn't see, such as a list of which roles he or she has been granted.
我不认为让用户看到他被授予了哪些角色有什么坏处。但是,如果您不希望它在 token 中可见,您可以简单地将 token 视为标识符,并在 token 和用户之间建立关系,从而建立用户角色。
如果 token 确实包含私有(private)数据,那么您应该先对其进行加密(例如,使用 PyCrypto ),然后对其进行签名(例如,使用 itsdangerous 或 hmac )。
参见 Should we MAC-then-encrypt or encrypt-then-MAC?有关签名和加密数据顺序的信息。
- Leaking information about whether an expired token was ever valid. A malicious user who got hold of a token could use itsdangerous to differentiate between tokens that were never valid, and tokens that used to be valid but have expired. It would be better if such a user could tell only that the token is invalid, with no indication as to why.
如果您加密 token ,或者如果 token 只是一个标识符,那么恶意用户应该只能判断 token 当前是否有效(即,它现在有效),而不知道是否有任何其他 token 有效不直接使用有效。但为什么提前知道 token 是否有效会影响安全性?
关于python - 如何克服 SSO : encryption and expired tokens 的 itsdangerous 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27641044/
我在 PingFederate 中配置了 IDP 发起的 SSO,它显示 SSO 应用端点 为:https://myserver/idp/startSSO.ping?PartnerSpId=sp_id
我在 PingFederate 中配置了 IDP 发起的 SSO,它显示 SSO 应用端点 为:https://myserver/idp/startSSO.ping?PartnerSpId=sp_id
我正在尝试使用我的 Office 加载项实现 SSO。为此,我使用 Office IdentityAPI,它要求您拥有一个应用程序 ID URI,该 URI 有一些限制(例如您拥有该域并且正在验证该域
谁能向我解释一下SP发起的SSO和IDP发起的SSO之间的主要区别是什么,包括哪一个是联合实现单点登录的更好解决方案与 ADFS + OpenAM 联盟? 最佳答案 IDP 启动 SSO 来自 Pin
我正在将 Azure Active Directory 配置为 Salesforce 的 SSO 身份验证提供程序。我已经在 Azure 中注册了该应用程序。当我尝试在 Azure 中为注册的应用程序
我正在将 Azure Active Directory 配置为 Salesforce 的 SSO 身份验证提供程序。我已经在 Azure 中注册了该应用程序。当我尝试在 Azure 中为注册的应用程序
我们将 AWS 控制台联合到我们的 Shibboleth IdP (SAML)。 AWS CLIv2 是否支持使用联合账户通过 SSO 访问 CLI?如果是这样——我在哪里可以找到下面链接中列出的“S
我在使用 Jira 插件时遇到多个问题:“Azure Active Directory 单点登录 (SSO) 与 Microsoft 的 JIRA SAML SSO 集成”。 问题: 安装插件时会出现
使用 IdentityServer3、Kentor.AuthServices 0.19(带有 OWIN 中间件)和标准 MVC 4 WebApi 2 应用程序,我们按照 https://github.
有关单点登录(SSO)之前有写过两篇文章 一文读懂 JWT! 看完这篇不能再说不懂SSO原理了! 如果说XXL-JOB你可能并不陌生,它是非常火爆的一个分布式任
我正在为 使用 WSO2 身份服务器SSO 与 saml 在我的演示应用程序中。 我的要求是用户应该向服务提供商登录页面提供登录凭据,而不是身份提供商页面。 出于同样的目的,我关注了 Asela 的以
我对如何使用 SiteMinder 和 OpenSSO 管理以下场景感兴趣 给定两个 Web 应用程序,并强制要求在它们之间使用 SSO。应用程序 A 是一个简单的应用程序,仅需要用户名/密码组合。应
我有一个现有的Wordpress网站。计划是使用cakePHP框架重建站点。由于时间限制,我想一次替换一个Wordpress网站的各个部分。这意味着两个应用程序将并排运行一段时间。我需要使用Wordp
我想在两个网络应用程序之间执行单点登录。这是我的场景: 应用程序 A 和 B(均提供 RESTFUL API)。 应用 B 使用基于表单的身份验证,我无法对应用 B 进行任何修改。此外,应用 A 和应
我是 Cypress 和 JS 的新手。如果未登录,我正在测试的应用程序将重定向到 stub IDP 页面。该应用程序也支持基本身份验证。我在测试中所做的就是cy.visit("https://use
我想为我的自定义 SPA 添加 Azure AD 身份验证。我已在 Azure 门户的应用程序注册中注册了该应用程序。 当我使用 API 调用此“APP”时,我可以获得登录屏幕和 MFA,但登录到 A
我正在尝试设置现有的 ASP.NET Web 应用程序以使用 SAML 或 OAUTH 2.0 对 Azure Active Directory 帐户进行身份验证。教程仅向我展示 MVC 中的示例代码
我正在尝试在基于 spring 的 Web 应用程序中实现一个简单的 SSO 功能。场景: 我有一个主应用程序 Application1 和一个辅助应用程序 2。两者都有自己的登录机制(使用 spri
我已经搜索了这个问题的答案,但是找不到任何答案。 我有一系列要使用同一Facebook应用程序的iOS应用程序。 SSO与我创建和测试的第一个应用程序完美配合。但是其他所有方法都失败,并返回了unkn
我发现 NTLMAuthenticationFilter.java 中有以下代码用于露天共享 SSO 身份验证: Response remoteRes; if (cachedNtlm)
我是一名优秀的程序员,十分优秀!