首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web / MVC 6中的安全JSON令牌

Web / MVC 6中的安全JSON令牌
EN

Stack Overflow用户
提问于 2015-07-01 20:07:36
回答 1查看 2.4K关注 0票数 5

安全性问题:根据https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/的说法,很多JWT库都使用令牌本身来确定签名算法。

这是我们的用例:我们希望创建一个登录机制,用硬凭据(用户名/密码)验证用户,然后返回一个JWT令牌,例如3天的生存期。令牌应该包含用户名,签名应该保证令牌不会被“伪造”。

我们可以在Web / MVC 6中使用什么库?为了避免漏洞,必须在解码时指定签名算法。

如果可能的话,我们希望避免集成复杂的OAuth组件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-06 14:34:18

我正在使用System.IdentityModel.Tokens.Jwt库,我只是检查了这个问题。我生成了一个令牌,并在我的一个测试中验证了它,然后删除了将alg更改为none的signingCredentials。使用"alg":"none"生成的JWT验证失败。

下面是我如何生成令牌:

代码语言:javascript
复制
public string GenerateToken(SSOContext context, SignatureSettings settings)
{
    var token = new JwtSecurityToken(
        issuer: "MyIssuer",
        audience: "MyAudience",
        claims: GetClaims(context),
        //comment the below line to generate a 'none' alg
        signingCredentials: new X509SigningCredentials(settings.Certificate),
        notBefore: DateTime.UtcNow,
        expires: DateTime.UtcNow.AddHours(1)
        );

    return new JwtSecurityTokenHandler().WriteToken(token);
}

当我验证令牌时,我会得到消息中预期的异常。

IDX10504:无法验证签名,令牌没有签名:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31170683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档