摘要:
越权 越权是非常严重的安全漏洞,通常状态是开发人员对请求的限制逻辑不严格导致的。 如果系统中有角色的概念,越权可能出现不同角色间的越权和同角色间的越权。 相同角色: A用户,B用户是相同的角色。 A用户和B用户都可以调用 /photo/{id}。 这个url,如果在后端不判断这个phtoto的id属 阅读全文
posted @ 2022-02-03 13:37
桂素伟
阅读(86)
评论(0)
推荐(0)
摘要:
上传文件 上传文件是造成风险的很大因素,所以对上传文件进行处理是重要的,首先要处理的是:a、上传文件大小限制;b、上传文件类型(能过扩展或,或文件头)限制;c、上传的名称要替换掉;d、上传的文件要在专用区域(如果能设置权限最好)最好。 [HttpPost("/files")] public asyn 阅读全文
posted @ 2022-02-03 13:35
桂素伟
阅读(58)
评论(0)
推荐(0)
摘要:
隐藏web服务端信息 创建一个asp.net core mcv web项目,运行,F12查看返回信息,如下图,会清晰看到服务端的类型是kestrel. 有时安全检测要求不能显示服务端信息,这样在一定程度上能降低被 攻击的风险,具体代码如下: public class Program { public 阅读全文
posted @ 2022-02-03 13:28
桂素伟
阅读(64)
评论(0)
推荐(0)
摘要:
web应用相对desktop应用就要复杂一些,桌面应在一个时间点是为单访问服务,web应用,在一个时间点,设计的是为多人服务;桌面应用UI和后面代码是一体的,在一台设备上动行表示,但web服务,通常是前后端分离,后端很多时候还是很多个服务协同工作,所以web服务就要复杂一些。 web框架 这里说的w 阅读全文
posted @ 2022-02-02 23:10
桂素伟
阅读(81)
评论(0)
推荐(0)
摘要:
使用了AspNetCoreRateLimit三方库,starup.cs配置如下。 using AspNetCoreRateLimit; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Micr 阅读全文
posted @ 2022-02-02 23:07
桂素伟
阅读(79)
评论(0)
推荐(0)
摘要:
写程序和拼积木是一样的,首先要知道我们这堆积木中都有那些基本模块,然后再非常清晰知道自己这次要拼一个什么东西,那接下来就是拼搭环节,在拼搭过程中,有时还会拆除,重新来搭。 其实开发软件也是一样的,这篇先理一下desktop框架下“搭积木”的思路。 desktop框架:desktop在.net世界里面 阅读全文
posted @ 2022-02-02 23:00
桂素伟
阅读(424)
评论(0)
推荐(0)
摘要:
高层模块不应该依赖底层模块,两都都应该依赖抽象 一个三层的Demo /// <summary> /// 人员实体类 /// </summary> class Person { public int ID { get; set; } public string Name { get; set; } p 阅读全文
posted @ 2022-02-02 20:36
桂素伟
阅读(28)
评论(0)
推荐(0)
摘要:
对修改是封闭的,对扩展是开放的。 新需求对于已上线的系统是司空见惯的,最佳实践告诉我们对生产中的代码在扩展功能时不要直接修改,而是去重写一个新的方法,新类型或新服务去扩展它,这道理很简单,任何即有代码的变更,都可能带来灾难。(除非100%把握,或有100%把握的胆子,当然也有一个工种,测试能帮我们来 阅读全文
posted @ 2022-02-02 20:32
桂素伟
阅读(40)
评论(0)
推荐(0)
摘要:
最近工作需要,在调研BMP产品(开源和商用),重点了解了activiti和它的商业产品Alfresco Process Services,这是java的体系,成熟,完善(三方开源库是java多年开源积累下的最宝贵的财富),出身.neter的我自然就想看看.net世界里有没有类似的产品。于是就找到两篇 阅读全文
posted @ 2022-02-02 20:28
桂素伟
阅读(271)
评论(0)
推荐(0)
摘要:
单一职责是降低耦合度的指导思想,适用于一个微服务,一个类型,一个方法。 微服务层: 微服务一般按业务的领域来进行拆分:药房微服务就是药房的业务,护士站微服务就是护士站的业务,广义上没有什么问题,但对于一些共用业务,就犯难了,究竟放在那个微服务里?还是合并两个微服务?其实这里就单一,把共用的抽离出来, 阅读全文
posted @ 2022-02-02 20:24
桂素伟
阅读(39)
评论(0)
推荐(0)
摘要:
官方和老人言,asp.net core中尽量用异步,为什么呢?接下来是个小demo,看看同步异步的差别吧,或许通过这个demo,就明白官方和老人的良苦用心了。 1、创建一个sql server的表 CREATE TABLE [dbo].[Students]( [StuNo] [varchar](50 阅读全文
posted @ 2022-02-02 20:10
桂素伟
阅读(76)
评论(0)
推荐(0)
摘要:
Jaeger是收集全链路跟踪的信息,在Jaeger收集的信息中,有请求的url信息,有每个请求的时间间隔,借助这些信息可以进行报警,比如一次较长的请求,或者是某些请求的次数和先后等。不管报警的业务规则是什么,首先得收集Jaeger中的信息。 Jaeger有api可以提供这些信息,比如 /api/se 阅读全文
posted @ 2022-02-02 20:03
桂素伟
阅读(57)
评论(0)
推荐(0)
摘要:
上一篇定义了两种使用Jaeger的方式:中间件和action过滤器,下面这个例子定义了两个服务 WebAPI01,请求WebAPI02,采用的是中间件的请求方式。 引入JaegerSharp包(或发布到自己的Nuget库里引用) WebAPI01的Startup using JaegerSharp; 阅读全文
posted @ 2022-02-02 19:58
桂素伟
阅读(103)
评论(0)
推荐(0)
摘要:
随着微服务的普及,微服务间的调用全链路跟踪也火了起来,Jaeger(https://www.jaegertracing.io/)是CNCF孵化的全链路跟踪型项目,在.net core中,提供了一个Jaeger的Nuget(https://github.com/jaegertracing/jaeger 阅读全文
posted @ 2022-02-02 19:53
桂素伟
阅读(87)
评论(0)
推荐(0)
摘要:
最近设计架构时,有个场景,首先是前后端分离,再就是一前端对多后端,这里需要解决两件事,一是前端的html,js,css需要一个host;二是需要一个api网关,能组织后端的api服务。有很多反向代理产品能实现,这里选择了Nginx来实现。 下面是在一个前端的html文件中调用后端api的例子,前端是 阅读全文
posted @ 2022-02-02 19:48
桂素伟
阅读(64)
评论(0)
推荐(0)
摘要:
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 ——出自 https 阅读全文
posted @ 2022-02-01 15:45
桂素伟
阅读(118)
评论(0)
推荐(0)
摘要:
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 ——出自 https 阅读全文
posted @ 2022-02-01 15:43
桂素伟
阅读(52)
评论(0)
推荐(0)
摘要:
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 ——出自 https 阅读全文
posted @ 2022-02-01 15:41
桂素伟
阅读(90)
评论(0)
推荐(0)
摘要:
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 ——出自 https 阅读全文
posted @ 2022-02-01 15:25
桂素伟
阅读(65)
评论(0)
推荐(0)
摘要:
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 ——出自 https 阅读全文
posted @ 2022-02-01 15:23
桂素伟
阅读(65)
评论(0)
推荐(0)

浙公网安备 33010602011771号