首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Base64编码在AspNetCore Api路由中的应用

Base64编码在AspNetCore Api路由中的应用
EN

Stack Overflow用户
提问于 2018-06-25 14:22:56
回答 2查看 923关注 0票数 0

我正在按照OCSP应答机中定义的规则创建一个RFC 6960

因此,我需要实现一个GET服务,其路由必须是:

代码语言:javascript
复制
{url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}

我创造了我的GET动作:

代码语言:javascript
复制
[Route("api/ocsp")]
public class OcspController : Controller
{
    [HttpGet]
    [Route("{encoded}")]
    public async Task<IActionResult> Get(string encoded)
    {
        var ocspHttpRequest = await Request.ToOcspHttpRequest();
        var ocspHttpResponse =  await OcspResponder.Respond(ocspHttpRequest);
        return new OcspActionResult(ocspHttpResponse);
    }
    ...
 }

但是,当ASP.NET被编码时,它不会找到或返回路由的坏请求,这是必要的。

base64中的Ocsp请求(注意它有两行):

代码语言:javascript
复制
MEkwRzBFMEMwQTAJBgUrDgMCGgUABBR1vr6HF4T/UsADPXoNr6lpJ1JRowQUJfgJ
6MaP2huu1lFzJOFlkswOcM8CCB6PD3SWpxwf

base64 ocsp请求的Url编码:

代码语言:javascript
复制
MEkwRzBFMEMwQTAJBgUrDgMCGgUABBR1vr6HF4T%2FUsADPXoNr6lpJ1JRowQUJfgJ%0A6MaP2huu1lFzJOFlkswOcM8CCB6PD3SWpxwf

我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2018-06-25 14:46:04

Base64编码产生的某些字符在URL路径中无效。这是可以改变的,但是这样做是有原因的:也就是为了安全。如果您允许这些字符,您将打开自己的许多攻击,否则是不可能的。

但是,您可以将其作为查询字符串的一部分传递。这样处理就不会有错误了。

票数 1
EN

Stack Overflow用户

发布于 2021-04-21 07:32:39

有一个解决办法,您可以将{编码}更改为{*编码},然后它将接受不允许的其他符号。

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

https://stackoverflow.com/questions/51025751

复制
相关文章

相似问题

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