之前项目遇到了一个对外提供API的问题,有些粗浅的想法,抽空记录下。

以下所讨论的都是要解决:谁有资格调用这个API的问题(谁有权限进行这个操作的问题)

为了简化思路,就拿一个查看Java班级的学生举例。

XXX/Java/StuClass?name=java

1. 最简单的就是不加密,如上请求,这样会造成只要知道这个API的用户,都可以发送请求,如果被人利用,循环请求,浪费大量资源。

2. 在请求后面在加上特定一组注释符,注释符符合要求才继续执行。这样造成的问题同1

XXX/Java/StuClass?name=java&ticket=abedf

3. 将API用户的唯一身份认证信息进行加密(非对称和对称)均可。将这个附件信息一起发送到后台,后台接收后解密,判定用户身份是否合法。

XXX/Java/StuClass?name=java&ticket=15ff57fger
4. 3可能造成问题是,如果被人恶意利用ticket,还是会被多次请求,所以如果经身份信息有效时间信息(来自于后台)一起加密发送到后台更好.

相关文章:

  • 2019-11-02
  • 2021-11-06
  • 2021-04-25
  • 2021-07-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-22
  • 2021-09-01
  • 2021-06-30
  • 2022-12-23
  • 2022-12-23
  • 2021-09-15
相关资源
相似解决方案