你的api上锁了吗?-创新互联
职责单一化,各司其职,后端只负责Api接口编写提供给各种不同类型的客户端去调用,但是客户端和服务器端调用是要有权限限制的,不能任何一个客户端都可以随便调用我们的接口(这里面的缘由相信大家都知道吧,当然我就默认你们都知道),再者我们都知道http是明文传输,被抓包可可以修改相应参数,当然如果你使用了https就相对安全了不少!
成都创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十多年时间我们累计服务了上千家以及全国政企客户,如成都封阳台等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞美。举一个很简单的栗子,×××的接口大家都调用过吧,当然肯定有没调用过的,没关系,没有调用过的人也是能明白我接下来要讲的事情:×××会有一个sign的签名,就是思梦php上面所说的权限认证机制了
下面思梦php给大家讲的只是其中的原理,我们可以根据所讲知识继续扩展,完善成为你自己的一套程序。
主要使用的工具:thinkphp5/PHP
(1)首先客户端和提供服务的服务器加密方式要一致AES、MD5都可以
(2)规定好参数
下面的程序是规定了三个参数:version(api的版本)、time(请求时间)、sign(加密好的签名)
当然这些参数我们可以根据你的实际代码业务而定,不一定设置一样,本次程序的参数是设置在header头里面进行传输,为了和body里面的业务参数区分开来,当然这里也可以不一致,根据你的业务而定
注意点:客户端和服务端时间不一致的问题,我们要在服务器提供一个时间的方法来验证时间的有效性
接下来就是我们在一个入口文件里面去定义一个验证的方法,保证我们接口的安全性
以上就是代码的示例:
(1)首先定义了一个BaseController
(2)定义一个构造方法,触发验证机制
(3)在验证方法里面获取header信息,进行加密验证,如果第一次方法将该sign作为键值缓存起来并设置有效期,保证请求的唯一性
(4)之后判断限制请求的时间,如果超时将抛弃此次请求
当然这是在http上面做的一些操作,如果使用了https已经相对安全多了!
以上只是一个抛砖引玉,小伙伴可以自己再去完善
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:你的api上锁了吗?-创新互联
网页网址:http://hbruida.cn/article/eejji.html