我正在创建一个网站,用户可以在此订购出租车。现在要订购一个,必须有一个活动的驱动程序。我正在前端采取措施以隐藏实际的订单表单,但是如果有人通过了该表单,并且能够使用该表单而不管向“订单”文档发送写请求,那么它将读取Firestore数据库中的“活动”司机”。因此,尽管可以很容易地用规则来限制对数据库的写入,但这仍然会从数据库中读取数据以获取任何活动的驱动程序。所以我的问题是我可以/应该采取什么样的措施,以使用户不能仅仅通过向“ order”文档发送写请求来继续读取活动的驱动程序?例如,如果用户在特定时间段内执行了x个请求,是否可以“锁定”用户?我仍然是Firebase的新用户,并且对项目的安全性和配额限制有些担心。
答案 0 :(得分:0)
您可以做的是为特定订单做导航卫士。您需要确保一旦用户尝试向服务器发送请求,您将拥有一个变量,该变量可以检查有人请求该操作的次数。然后相应地拒绝。
答案 1 :(得分:0)
我已经研究了一下,而且我认为Firestore目前无法实现。潜在的攻击者可以进行某种形式的DoS攻击,从而导致大量读取。由于您按数据库读取收费,这可能会导致Google支付巨额账单(但我对ToS并不100%肯定,可能还不错)。
我想您可以添加某种断路器,以根据请求率或计费金额禁用Firestore。
答案 2 :(得分:0)
您不能设置读取限制
您可以按照here
设置写限制