我已经对用户进行了身份验证,并且希望能够保护自己免受垃圾邮件对特定引用的读取(从而增加成本)的影响,您是如何做到这一点的?我在这里看到了这个问题:
Firebase rate limiting in security rules?
这涉及限速写入:
"诀窍是对用户上次发布的时间进行审核 消息" - 加藤
有没有办法确定用户上次读取的时间,然后将下一次读取限制为上次读取的某个时间间隔?可能更好的是限制在特定时间范围内的读取量(比如每小时n次读取)?
由于
答案 0 :(得分:2)
我刚看到firebase使用了一个可突发的结算方案,如下所示:
https://en.wikipedia.org/wiki/Burstable_billing
这样您就不会因恶意用户执行我在此处描述的内容或DDOS而被指控。
答案 1 :(得分:0)
这个怎么样:
结构:
users
uid_0
name: "biff"
post_activity
post_id_0
last_activity: "20170128100200"
和用户节点
a post about posting
a post about pizza
伪代码,因为我们不知道平台
显示表格中的帖子列表
lastActivity = uid_0/post_activity/post_id_0/last_activity
用户点击或点击“关于发帖的帖子” 在代码中,获取最后一项活动,即今天上午10:02
let currentTimestamp = current time (say it's 10:04 am)
if currentTimestamp - lastActivity > 1 minute then
show post details
update the lastActivity node to current timestamp
else
print("Posts can only be reviewed every minute")
然后将最后一个活动与当前时间进行比较,如果它在不到一分钟之前被访问过,请不要让它们再次阅读
{{1}}
在这种情况下,上次在2分钟前阅读帖子时,请允许再次阅读。如果不到一分钟就会被拒绝。
此外,如果用户点击/点击post_id_1,则无法找到帖子活动,这意味着用户之前从未查看过该活动;在这种情况下,将它添加到uid_0 / post_activity节点。
相同的技术可以与计数器一起使用,而不是用来限制用户阅读帖子的次数。