当我的应用程序中的用户在剧院虚拟鼓掌时,它将发送请求,要求在 Supabase 中将计数加 1。 目前,我使用
signInWithPassword
进行身份验证,并且仅对经过身份验证的用户启用更新 RLS 策略。
但是,通过这种方法,用户可以打开 Chrome 控制台,复制请求标头,包括
apikey
和 authentication
,并通过发送其他请求来更新计数,例如通过使用邮递员。
我应该怎样做才能防止这种情况发生?我尝试将 JWT 过期时间设置为 1 秒并成功达到目标,但这个解决方案听起来很奇怪。
您必须在简单性和安全性之间进行权衡。
如果您想限制用户可以发送的拍手数量或发送拍手的频率等,则必须保留每个用户发送的拍手的每条记录。您可以有一个
claps
桌子,其中包含 user_id
来保存鼓掌的人,clapped_at
来保存鼓掌发生的时间,也可以使用 post_id
或任何适合您的应用程序来保存鼓掌的用途。这样,当用户尝试鼓掌时,您可以检查这是否是有效的鼓掌。 Supabase 可以轻松计算行数,因此获得总掌声并不是一个大问题。