api接口安全

Api接口的安全

Api接口可以分两种一种是需要登录才能获取数据,使用的是token

使用jwt加密技术加密用户信息,设置token的过期时间一般是2个小时,提高token的安全性,然后把token返回给客户端,客户端可以将token存入localstorage或者cookie中,cookie和localstorage的区别是cookie只能存4k的数据,localstarage能存5m,cookie可以设定过期时间,默认为一次会话,localstarage会一直存在,除非手动清除,下次请求时可以把token放入请求头里,带到服务器,通过jwt进行解密,如果解不回来,或token过期,那就认为用户没有登录。
有两种方法 第一种就是跳到登录界面,让用户在登录,但这样就使用户需要每两个小时就要登录一下,用户体验很不好
第二种就是设置一个refeshtoken过期时间要比token时间长,如果返回的状态码是401,就是token过期了,让他带着refeshtoken去换取新的token和refeshtoken,把新的token和refeshtoken替换旧的,然后继续上一次的请求,这里要用到ajax的同步。这样通过refeshtoken完成了无痛刷新。这样能实现接口的安全
还有一种接口是不需要登录的接口,比如说取得推荐商品,获得分类等,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。
我们可以在前台使用时间戳和随机数还有一个固定的口令,用MD5或是别的加密方式(Rsa非对称加密),生成一个签名,当需要访问接口的时候,把时间戳,随机数,签名通过URL传递到后台。后台拿到时间戳,随机数后,通过一样的算法规则计算出签名,然后和传递过来的签名进行对比,一样的话,返回数据。
但还是不安全,可以通过抓包工具获得时间戳,随机数,签名,这样还是能获取数据,怎么解决呢?我们可以使这个签名只能使用一次,可以把签名存入数据库或Redis中,我选择的是Redis,速度快,把签名作为键,值的话随便,这样在验证签名前查找Redis中是否存在相同的签名,不存在才能往下走。
这样不需要登录的接口也能实现接口的安全。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开放的API接口安全问题是一个重要的考虑因素。身份验证是确保API安全的一种方法。通过身份验证,可以限制或删除滥用API的使用者,并保护他们的安全。对于开放的API,即使是免费的API,也应该考虑采用身份验证策略以确保安全性。\[1\] 在API接口传输过程中,加密和签名也是保证安全性的重要手段。加密可以使用对称加密和非对称加密两种方式。对称加密使用相同的密钥进行加密和解密,效率高但密钥管理和分配较为复杂。非对称加密使用一对密钥,公钥和私钥,公钥可以发给任何请求者,而私钥只能由一方安全保管。非对称加密提供了更高的安全性,常用的算法是RSA算法。\[2\] 除了加密,接口传输还可以使用签名来确保数据的完整性和真实性。签名是对数据进行加密的过程,接收方可以通过验证签名来确认数据的完整性和真实性。签名可以使用MD5等混淆算法来实现。\[2\] 综上所述,开放的API接口安全问题可以通过身份验证、加密和签名等措施来解决。这些措施可以保护API安全性,防止滥用和数据泄露等问题。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [开放式API安全防护的七大原则](https://blog.csdn.net/zhanghuan0126/article/details/112856246)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [开放API接口安全处理](https://blog.csdn.net/banliao3463/article/details/101663491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [开放平台API接口加密,签名策略](https://blog.csdn.net/weixin_42212026/article/details/84538971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值