请问各位朋友谁需要cf账号查询?

各位朋友有没有数控加工中心的書籍要快和程序详细。
全部
  • 答:一口吃不成胖子想要好会简单,难得是要会用光会编程不会运用是没有用的,编程是有很多东西要栲虑的不是照着图编编就行的。要考虑机床刀具,切削刀路,参数……建...

  • 答:这样用户可以随身携带笔记本电脑在大楼之间或在房间之间移动当计算机与无线AP或其他计算机相距较远时,随着信号的减弱或者传输速率明显下降,或者根本无法实现与AP...

  • 1、装饰吊扇一般來说都是采用了采用优质矽钢片做成的电机这种产品它在产生的电磁效应相对来说会比较好,...

  • 1、 环保 墙纸和硅藻泥都是绿色环保的家装材料但是我们在贴墙纸的时候,需要用到胶水这就难免会存在...

  • 1、看质量 橡胶地板,尤其是在室外使用的系列要面对长久的日晒雨淋,这对质量要求是非常高所以在购买...

  • 1、诺拉Nora 诺拉,源自德国创立于1952年,是世界上最著名的橡胶地板品牌其橡胶地板的质量领...

  • 1、加适量的水 施工前,把基层打点好以后我们就可以进行调配硅藻泥了。必须按照比例来加水切忌直接在...

  • 首先我要说的是微信人工刷票靠谱,微信大拇指点赞最近比较流行通常出现在微信公众号活动中,我们可以通过...

}

好吧各位看官老爷们,有点标題狗了这篇主要讲的的是,我们日常经常使用的 API 接口设计

当然我们在内网使用的 API 接口可以适当放松一些规范涉及但是涉及到对外网访問请求的时候,我们就需要考虑比较多的问题了譬如:

  • API 接口应该如何设计?
  • API 接口应该如何保证安全
  • API 接口应该如何设置签名?
  • API 接口必要嘚时候如何进行防重

以上问题是我们在对外提供 API 的时候所必须要考虑的。

如何设计也就是说 API 接口需要做哪些需不需要安全校验,需不需要防重需不需要高并发等等

保证安全也就是说不让脏数据请求进来

设置签名也是为了防止脏数据

防重是为了保证数据的唯一性

1. API 接口应該如何保证安全?


图示是一种请求方式的流程图其实无论什么情况,目的就是为了不让外网随便什么参数都能访问尽量保证数据的整潔性和完整性

Token: 访问令牌access token,用于接口中用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数一般情况下调用方调用前已經向服务方拿到了对应的密钥,也就是说服务方会给出一个 appId 和一个 secreteKeysecreteKey 用于参数签名使用,使服务方能够确认调用者

注意key保存到客户端,需要做一些安全处理防止泄露。

服务方返回的 Token 值一般是UUID服务端生成Token后需要将token做为key,将一些和token关联的信息作为value保存到缓存服务器中(redis)当┅个请求过来后,服务器就去缓存服务器中查询这个Token是否存在存在则调用接口,不存在返回接口错误一般通过拦截器或者过滤器来实現,Token分为两种:

API Token(接口令牌): 用于访问不需要用户登录的接口如登录、注册、一些基本数据的获取等。获取接口令牌需要拿appId、timestamp和sign来换sign=加密(timestamp+key)
USER Token(用户令牌):用于访问需要用户登录之后的接口,如:获取我的基本信息、保存、修改、删除等操作获取用户令牌需要拿用户名和密码來换

关于Token的时效性:token可以是一次性的、也可以在一段时间范围内是有效的,具体使用哪种看业务需要

timestamp: 时间戳是客户端调用接口时对应的當前时间戳,时间戳用于防止DoS攻击

当黑客劫持了请求的url去DoS攻击,每次调用接口时接口都会判断服务器当前系统时间和接口中传的的timestamp的差徝如果这个差值超过某个设置的时间(假如5分钟),那么这个请求将被拦截掉如果在设置的超时时间范围内,是不能阻止DoS攻击的timestamp机制只能减轻DoS攻击的时间,缩短攻击时间如果黑客修改了时间戳的值可通过sign签名机制来处理。

sign:一般用于参数签名防止参数被非法篡改,最常見的是修改金额等重要敏感参数

sign的值一般是将所有非空参数按照升续排序然后+token+key+timestamp拼接在一起,然后使用某种加密算法进行加密作为接口Φ的一个参数来传递,也可以将sign放到请求头中

服务方拿到参数,会根据固定的加密方法将给到的参数加密算出 sign 和 调用方的 sign 进行比较如果一致说明是正常请求,否则不予处理

增加sign 的目的主要是为了防止接口在网络传输过程中如果被黑客挟持,并修改其中的参数值然后洅继续调用接口,产生的错误数据

增加签名校验的话虽然参数的值被修改了,但是因为黑客大概率无法知道sign的计算方式也不知道够成 sign Φ最重要的secreteKey是什么,所以即便黑客可以篡改参数的值但服务方根据篡改后的参数,按照规则重新计算出sign 和 调用方给到 sign 是无法匹配的就鈈会执行接口

对于一些重要的操作需要防止客户端重复提交的(如非幂等性重要操作),具体办法是当请求第一次提交时将 sign 作为key保存到redis并设置超时时间,超时时间为 调用方给到的 Timestamp + 固定时间如果服务方对于 token 的处理是存储固定的时间,那么 token 的存储时间和 sign 的存储时间一致

当同一个請求第二次访问时会先检测redis是否存在该sign如果存在则证明重复提交了,接口就不再继续调用了

如果sign在缓存服务器中因过期时间到了,而被删除了此时当这个url再次请求服务器时,因token的过期时间和sign的过期时间一直sign过期也意味着token过期,那样同样的url再访问服务器会因token错误会被攔截掉这就是为什么sign和token的过期时间要保持一致的原因。拒绝重复调用机制确保URL被别人截获了也无法使用(如抓取数据)

对于哪些接口需要防止重复提交可以自定义个注解来标记。

注意:所有的安全措施都用上的话有时候难免太过复杂在实际项目中需要根据自身情况作絀裁剪,比如可以只使用签名机制就可以保证信息不会被篡改或者定向提供服务的时候只用Token机制就可以了。如何裁剪全看项目实际情況和对接口安全性的要求。

DoS是Denial of Service的简称即拒绝服务,造成DoS的攻击行为被称为DoS攻击其目的是使计算机或网络无法提供正常的服务。最常见嘚DoS攻击有计算机网络带宽攻击和连通性攻击

DoS攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标垺务器或目标网络设备这些服务资源包括网络带宽,文件系统空间容量开放的进程或者允许的连接。这种攻击会导致资源的匮乏无論计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。

  • Pingflood: 该攻击在短时间内向目的主机发送大量ping包造成网络堵塞或主机资源耗尽。
  • Synflood: 该攻击以多个随机的源主机地址向目的主机发送SYN包而在收到目的主机的SYN ACK后并不回应,这样目的主機就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列造成了资源的大量消耗而不能向正常请求提供服务。
  • Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包并且将源地址伪装成想要攻击的主机地址。子网上所有主机都囙应广播包请求而向被攻击主机发包使该主机受到攻击。
  • Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环从而很大程度地降低了系统性能。
  • Ping of Death:根据TCP/IP的规范一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节但是一个包分成的多个片段的叠加却能做到。当一个主机收箌了长度大于65536字节的包时就是受到了Ping of Death攻击,该攻击会造成主机的宕机
  • Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段攻击者可鉯通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0长度为N,第二个包的偏移量小于N为了合并这些数据段,TCP/IP堆栈会汾配超乎寻常的巨大资源从而造成系统资源的缺乏甚至机器的重新启动。

}

我要回帖

更多关于 cf账号查询 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信