.NET API 接口数据传输加密最佳实践记录
发布时间:2023-02-17 10:11:41 所属栏目:asp.Net 来源:互联网
导读:我们在做 Api 接口时,相信一定会有接触到要给传输的请求 body 的内容进行加密传输。其目的就是为了防止一些敏感的内容直接被 UI 层查看或篡改。 其实粗略一想就能想到很多种方案,但是哪些方案是目前最适合我们项目的呢? 硬编码方式 最先想到的应该就是硬
} } 这里我做了一个方便我自己的拓展功能,就是显示打了 IApiEncrypt 接口标签的才会正常进行解析绑定。 剩下的就是在 ConfigureService 中添加进去即可: services.AddControllers(options => { ... options.ModelBinderProviders.Insert(0, new SecurityTransportModelBinderProvider()); }) 这样实现过后,我们就能像使用 FromBody 那样就能按需调用即可: [HttpPost("security")] public async Task<ResultDto> DemoDecrypt([ModelBinder(typeof(SecurityTransportModelBinder))] OriginBusinessRequest request) { //激活结果 ... return await Task.FromResult(WriteSafeData(data, publicKey)); } 如果是默认处理加解密也是可以的,直接在对应的请求实体类打上 IApiEncrypt 标签就会自动执行模型绑定 public class UserUpdateRequest: IApiEncrypt { public int UserId { get; set; } public string Phone { get; set; } public string Address { get; set; } ... } 这种方案其实也还是有缺点的,从刚刚的使用来看就知道,模型绑定无法解决返回自动加密处理。所以我们不得不在每个接口处写下如 WriteSafeData(data, publicKey) 这种显式加密的代码。 优化的方式也很简单,其实我们可以通过过滤器可以解决,这也是为什么我要加 IApiEncrypt 的原因,因为有了这个就能确定知道这是一个安全传输的请求,进而进行特殊处理。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – 如何在Visual Studio中添加NUnit
- asp.net – WebForm_DoCallback定义
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- asp.net – axd和ashx处理程序之间的区别
- asp.net-mvc – MVC 3布局页面,Razor模板和下拉列
- asp.net-mvc – 如何组合两个dataTextFields的Se
- webservice的两种调用方式
- asp.net-mvc – 什么是强类型的视图在ASP.NET MV
- 如何为Asp.Net中的所有子文件夹注册HttpHandler?
- asp.net – Jquery Ajax,不在Internet Explorer中
热点阅读