asp.ne做网站,专业网站设计建站,深圳福田区十强企业,济南网站建设cn un1.签名 目的#xff1a;防止数据被篡改 #xff08;1#xff09;接口请求方将请求参数、时间戳和密钥拼接成一个字符串。 #xff08;2#xff09;使用MD5等hash算法生成签名。 #xff08;3#xff09;在请求参数或请求头中增加sign参数传递给API接口。 #xff08;4防止数据被篡改 1接口请求方将请求参数、时间戳和密钥拼接成一个字符串。 2使用MD5等hash算法生成签名。 3在请求参数或请求头中增加sign参数传递给API接口。 4API接口网关服务验证传递的sign值与自己生成的sign值对比若相等则认为是有效请求。 时间戳的作用防止同一次请求被反复利用增加密钥被破解的可能性每次请求设置合理的过期时间。
2.加密 目的保护重要数据如密码、银行卡号等。 方法 1使用AES对称加密算法。 2在前端使用公钥加密用户密码。 3在注册接口中使用密钥解密并作相关权限校验。
3.IP白名单 目的防止恶意请求。 方法 1限制请求IP。 2添加IP白名单在API网关服务上。 3防止内部服务器被攻破需增加web防火墙如ModSecurity。
4.限流 目的防止API接口被频繁调用导致服务不可用。 方法 1对请求IP、请求接口、请求用户作限流。 2使用Nginx、Redis或Gateway实现限流。
5.参数校验 目的拦截无效请求、保护系统资源。 方法 1校验字段是否为空、字段类型、字段长度、枚举值等。 2使用Hibernate Validator框架进行校验如Size、Length、Max等。
6.统一返回值。 目的避免返回值结构不统一便于接口维护。 方法 所有异常通过API网关捕获并转换成统一的异常结构返回。
7.统一封装异常 目的防止泄露敏感信息。
8.记录请求日志 目的便于快速分析和定位问题。 方法 1记录请求url、参数、头信息、请求方式、响应数据和响应时间等。 2使用traceId微服务调用的场景串联整个请求日志。
9.幂等设计。 目的防止用户多次请求产生错误数据。 方法 1业务唯一id。 2token机制。业务调用接口前先获取token然后调用业务接口请求时把token携带过去服务端判断token是否存在redis中存在则表示第一次请求可以继续执行业务执行完成后把redis中的token删除。 3建去重表。 4版本控制。增加版本号当版本号符合时才去处理数据。 5状态控制。根据业务的状态判断是否已经处理。
10.限制记录条数。 目的避免接口超时问题。
11.压测 目的了解各接口的QPS情况确保上线后接口的稳定性。 方法 使用jmeter或apache bench进行压力测试。
12.异步处理 目的提升复杂业务逻辑的接口性能 方法 1使用消息中间件。接口发送MQ消息后立即返回成功消息由MQ消费者异步处理。 2使用线程池。直接提交线程池由线程池去进行异步处理。
13.数据脱敏 目的保护敏感数据防止泄露隐私。 方法 对返回的一些个人敏感信息比如手机号、邮箱等做部分屏蔽处理。
14.职责单一 目的降低接口维护成本 方法 接口设计应该职责单一、避免复杂的if…else判断。