我正在构建一个API。在请求用户数据时,这被证明是检索数据的最佳做法:
请求ID为
的用户数据https://api.example.com/users/1
然而,通过电子邮件请求用户数据会更方便:
https://api.example.com/users/johnsmith@outlook.com
使用第二种方法是否安全?即使我要使用第一种方法,开发人员也无法知道他们想要请求的用户的ID,因此根本不会有用。
第二种方法安全吗?如果没有,是否有解决方案?感谢。
答案 0 :(得分:0)
在URL中传递电子邮件地址不是一个好主意,因为它是非公开信息。如果你真的需要使用电子邮件地址,那么请使用POST电话,或者如果你在API端使用适当的授权,你可以使用完全安全的id。
答案 1 :(得分:0)
只要ID在URI中是唯一且可解析的。 ' @'需要编码成"%40"。除了它的罚款,恕我直言。如果您有两种不同类型的标识符,例如电子邮件和ID,那么您可能希望允许客户端选择要使用的标识符
https://api.example.com/users?email=johnsmith@outlook.com
或
https://api.example.com/users?id=1
Here is some good literature了解如何在REST API中使用过滤器。