sil*_*min 6 rest restful-url restful-architecture
在基于REST的系统上,"加密"资源ID的选项有哪些.
例如:
/client/2
Run Code Online (Sandbox Code Playgroud)
可以访问
/client/SOMEHASHKEY
Run Code Online (Sandbox Code Playgroud)
我在想 :
1 - 拥有跟踪资源ID的数据库表以及相应的HASH,并在每个请求中查找它.这显然很难实现,并且相当多地增加了服务器的工作量.
2 - 有某种内部加密算法可以根据资源创建日期,资源ID和base64创建一个哈希值(显然不是最优的,但你明白了)
那么这种场景有很好的做法吗?你会推荐什么 ?
非常感谢
如果您的目的是让客户端 ID 难以猜测,请使用uuids,例如 32 个十六进制字符长的guid,例如 21EC2020-3AEA-1069-A2DD-08002B30309D。
识别域中的实体完全取决于提供 REST 服务的实现。
某些应用程序默认使用 guid 来识别实体。一个很好的例子是lovefilm API:
GET /users/9D48675C-096F-11DC-BF5A-88D01745CE5C HTTP/1.1
Host: openapi.lovefilm.com
Run Code Online (Sandbox Code Playgroud)
然而,使用难以猜测的标识符并不能保护您免受未经授权的访问,也不能替代真正的身份验证机制。
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |