Javascript 防止普通用户在投票系统上多次投票

Javascript 防止普通用户在投票系统上多次投票,javascript,security,voting-system,Javascript,Security,Voting System,我在后台用NodeJS和Express编写一个投票系统,并在前端做出反应 我目前正在做的是: 在localStorage中保存所有用户投票 生成浏览器指纹 投票时,我检查用户是否已经通过localStorage进行了投票 在后端端: 将浏览器指纹和IP地址保存到数据库 投票时,我检查数据库中是否已经存在指纹和IP地址的组合,如果不存在,则检查投票计数。如果是,投票就被忽略了 此外,我使用express brute来防止暴力攻击 我知道这根本不安全,用户可以通过多个设备或网络多次投票 我的

我在后台用NodeJS和Express编写一个投票系统,并在前端做出反应

我目前正在做的是:

  • 在localStorage中保存所有用户投票
  • 生成浏览器指纹
  • 投票时,我检查用户是否已经通过localStorage进行了投票
在后端端:

  • 将浏览器指纹和IP地址保存到数据库
  • 投票时,我检查数据库中是否已经存在指纹和IP地址的组合,如果不存在,则检查投票计数。如果是,投票就被忽略了
此外,我使用express brute来防止暴力攻击

我知道这根本不安全,用户可以通过多个设备或网络多次投票

我的问题是,有恶意意图的用户需要付出多大的努力才能向我的应用程序发送带有投票权的垃圾邮件?它将如何工作

我的客户希望承担用户多次投票的风险,只要这对非常精通技术的人来说很容易

编辑:


如果一个用户的票数是其票数的10-20倍,这其实并不重要。我只是想保护我的应用程序不受大量投票的影响。

只要清理本地存储,您就可以随时投票。您已经可以使用不同的浏览器和/或不同的机器进行多次投票。@Burki用户投票5次或10次并不重要。一个问题是大量的选票。在同一个设备/浏览器/网络上,仅清理本地存储无法再次投票,平均用户可能拥有大约3-4台设备,他可以在这些设备上使用多个浏览器进行投票,而不依赖ip实现唯一性。使用NAT协议,许多用户将共享一个公共网络address@LelioFaieta我的客户意识到了这一点,也希望承担这一风险。此外,我还检查了浏览器指纹,这使得组合更加独特。在这种情况下,对我来说(无论值多少钱),您的解决方案都很好。但也许你想问问那边的人