【发布时间】:2017-08-25 05:11:06
【问题描述】:
假设我有一个网站,汽车经销商可以在其中管理他们的汽车库存。每个汽车经销商都有自己的company_id,他们的员工使用staff_id 的员工账户。
当工作人员在页面http://sellcarsfaster.com/inventory/car/jdksf9843时
他们应该看到 ID 为 jdksf9843 的公司汽车。如果他们复制此 url 并将其发送给同事,其他工作人员应该能够查看汽车。但是,如果将 url 发送给编外人员,则该用户无法查看汽车。该车应仅供该汽车经销商的工作人员使用。
更进一步,我如何检查具有各种关系的各种资产的各种可能的数据库查询的权限?如下:
http://sellcarsfaster.com/inventory/car/jdksf9843/tires/93sl9843
http://sellcarsfaster.com/insurance/2djlasd8
http://sellcarsfaster.com/history/event/8o4jsdfj
在这样的应用中检查查看权限是否有最佳做法?后端应该做什么?我是否必须进行计算量大的数据库查询才能进行身份验证?我是否必须为每个数据库查询编写自定义身份验证函数?基于staff_id 或company_id 进行身份验证是否安全?
如果有人能指出我正确的方向,将不胜感激!
附: 我目前在我的后端有 JSON Web Token 身份验证,但它不会阻止不同公司的工作人员仅通过 url 看到彼此的库存。
使用 NodeJS 和 Postgres 与 AWS Cognito 进行用户身份验证
【问题讨论】:
标签: node.js database security authentication web