我正在构建一个带有投票选项的简单网络应用程序。我计划为投票最多的人提供现金奖励,所以我想要一个相对安全的系统。我有几个关于受孕的问题。我知道我的帖子与其他一些帖子类似,但似乎没有一个帖子足够具体到该平台,让我放心。
我的网络应用程序正在利用 javascript 和 firebase 来加载所有正在投票的对象。我将强制用户登录并存储 IP 地址、用户 ID 等。
问题:
- 这对于使用 javascript 来说是不是从一开始就存在根本性的缺陷?我看到编写仅更改值和重新投票的脚本的巨大潜力。 (也许我可以通过 ajax 调用验证前端数据是否正确以及用户是否存在?)
- 我的应用程序获得成功的机会非常难得,这是否会导致前端计算过多?
Edit:抱歉,我忽略了一个关键事实,即我确实有一个更大的后端系统(WordPress)来处理身份验证。我正在开发的应用程序很大程度上独立于 WordPress。我只是出于过滤目的提取一些用户信息。我选择 Firebase 作为存储解决方案是因为它的实时功能。
我希望通过以下几种方法来打击选民欺诈:
- 每月赠送 100 美元低奖励。
- 登录并不是一种妥协,我实际上希望用户进行注册并用人眼验证才有资格投票。其他人可以见证比赛但不能投票。
- 服务器端检查。如果我的应用程序受欢迎,我可以编写脚本来监控投票模式是否存在违规行为?如果有人滥用系统,我会禁用他们获胜的能力。
当然可以在客户端安全地执行此操作。但是,正如其他人指出的那样,它确实需要用户登录。如果您已经在使用 Firebase,这实际上很容易使用FirebaseAuth客户端.
然后你可以将其与Firebase 安全规则强制任何登录用户只能投票一次。查看安全页面上的截屏视频以获取示例!
您的安全规则可能如下所示:
{
"rules": {
"users:" {
"$userid": {
"voted_on": {
"$articleid": {
".write": "!data.exists()"
}
}
}
}
}
}
这确保您可以将任何给定值写入 /users/anant/voted_on/article1正好一次。您可以添加一个.validate
规则以确保该值是布尔值(或其他值)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)