【发布时间】:2020-07-22 13:23:00
【问题描述】:
我想问一下是否可以在我的 react 应用程序中使用动态路由,例如 www.siteurl/orders/:id
用户使用他的订单 ID 被重定向到他的订单,然后从数据库中获取他的数据,其背后的原因是启用订单跟踪和与客户想要的任何人共享订单的可能性。
这可以被不应该访问的人利用吗?
【问题讨论】:
标签: reactjs url dynamic-url data-security
我想问一下是否可以在我的 react 应用程序中使用动态路由,例如 www.siteurl/orders/:id
用户使用他的订单 ID 被重定向到他的订单,然后从数据库中获取他的数据,其背后的原因是启用订单跟踪和与客户想要的任何人共享订单的可能性。
这可以被不应该访问的人利用吗?
【问题讨论】:
标签: reactjs url dynamic-url data-security
只要确保订单本身不包含任何敏感的用户信息,您就可以开始了。
一般来说,这是一个经常被问到的问题:我们是否应该在 URL 中公开 id,并且在大多数情况下,这样做并没有什么坏处。这只是数据库中的一个字段,理论上,对于利用它的人来说,他们需要访问您的数据库,如果他们可以访问您的数据库,那么您将遇到比 URL 更大的问题。
【讨论】:
是的,这种后端的路由设计可以被其他人利用。用户特定信息的正确路由设计应该是这样的:
获取路线:
www.siteurl/orders/users/:uid : GET orders of specific user
PATCH 路线:
www.siteurl/orders/:oid : Change order information
重要提示!两条路由都必须通过身份验证来保护。因此,只有用户才能获得他的订单的 id 并可以对其进行更改。
【讨论】: