当前位置:   article > 正文

python flask 接口签名sign原理及代码实_flask接口开发加签

flask接口开发加签

接口签名sign原理及代码实现

觉得废话多的话,可以直接看代码

作用

防止有人不停的刷接口,对接口做限制

比如说,登录接口,按道理说,应该只有app会请求这个接口
但是,如果有人抓取app的请求,就会得到登录接口的地址和请求参数
如果他写了个脚本,不断的访问登录接口,去测登录名密码,那么有些有些用户的密码策略过于简单,是很容易被试出来的

所以,接口签名就是专门用来限制这个的,只有app(自己人)才能通过校验

原理

1.服务器和app,各自存储一个相同的秘钥
2.app请求时,把传的参数用秘钥进行加密,生成一个sign签名,一同传递过去
3.服务器接到请求后,也会对传递的参数进行加密,也生成一个sign签名,拿服务器生成的sign和接口请求的sing比对一下,如果相同,那么就可以证明,是自己人请求的,就予以放行

因为这个秘钥,只有自己人才会有,同样的秘钥生成的sign签名,肯定是一模一样的
这个秘钥,一般是开发的时候,线下给到app开发,集成编译到app里面的

问题

举例,app和服务器,各自保存了一个秘钥,进行签名验证
1.app请求登录接口,账号名为abcd,密码为123456,
2.app对账户名和密码用秘钥加密生成签名,去请求登录接口
3.服务器收到请求,对账号名和密码也用秘钥加密生成签名,对比发现签名一致,然后予以通过
4.请求成功

问题1

但是,如果下次app还去请求登录的时候,生成的签名,是不是还是一模一样?
因为都是对账号和密码加密生成签名,那么只要账号和密码不变,那么生成的签名肯定是一模一样的

那如果坏人直接抓包拿到签名、账号和密码,是不是他也可以仿造登录请求,要知道,服务器只接受请求,他是分辨不出来的

所以,即使是相同的账号和密码,也要保证,每次的签名都不一致

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/499287
推荐阅读
相关标签
  

闽ICP备14008679号