Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何防止攻击者复制提交?

如何防止攻击者复制提交?
EN

Software Engineering用户
提问于 2015-09-04 15:06:43
回答 2查看 137关注 0票数 3

我想创建一个投票网站。客户端请求使用POST回答投票,服务器将使用候选服务器进行响应。然后,客户端向服务器发送带有候选信息和胜利者的POST,然后服务器存储在该信息中。我希望通过向服务器反复发送他们的投票来防止客户端操纵结果。我想的一种方法是:

  1. 客户要求在投票中投票。
  2. 服务器发送候选人列表、时间戳和使用候选项和时间戳创建的咸散列。然后,服务器存储哈希。
  3. 客户端选择一个候选人,并将获胜者与候选人列表、时间戳和盐渍哈希一起发回。
  4. 服务器使用相同的盐分计算哈希,并检查哈希是否是存储在数据库中的有效散列。如果哈希是有效的,它尊重投票。如果没有,那么它要么会悄悄地避免提醒攻击者,要么会以错误的方式进行响应。

不过,我想找一种更优雅的方法来做这件事。首先,我很难想到一种不是静止的盐。我不希望用户受到IP地址的限制,所以不能包含在salt中。在那之后,我想不出一种好的方法来腌制我的哈希。

其次,我想找到一种不用在服务器上存储信息的方法。如果我能够创建一个可以快速计算而不是存储的验证方法,那将会更好(除非存储肯定比计算更好,因为它可能更快?)

第三,我应该悄悄地失败,还是显式地将错误通知客户端?

EN

回答 2

Software Engineering用户

发布于 2015-09-08 17:27:06

听起来你真的有两个问题:

  • 防止重播攻击。
  • 阻止同一个客户投票两次。

这些都是微妙的不同。重放攻击是简单地多次发送请求,可能有细微的变化,也可能是由第三方发送。多次投票就是这样:合法地投票不止一次。

这里的核心问题是你不知道客户是谁。如果客户端移动位置(IP或子网)怎么办?是新客户吗?即使你认为你知道他们是谁,在抽象的层面上,你也不知道。

这不是什么新问题。总的来说,大多数互联网通过要求客户创建帐户来解决这个问题。身份验证发生在TLS上,确保客户端是他们所说的那个人。完成此操作后,客户端可以通过服务器将其存储在数据库中的TLS连接发送其投票。一个客户ID (如电子邮件地址或帐户名称),一票。

这可以防止重放攻击: TLS已经通过设计增强了对这些攻击的抵抗力。这也防止了多次投票:投票是根据数据库中的帐户ID链接起来的,这使得查看特定客户端是否已经投票变得非常容易。只需有一个由轮询ID和帐户ID组成的多部分主键。另一个字段存储投票。您可以添加可选元数据,如IP地址和投票日期/时间。

这里没有理由重新发明轮子: TLS和一些基本的数据库设计可以轻松地解决您的问题,并且比任何本土开发的解决方案都要好得多。

票数 3
EN

Software Engineering用户

发布于 2015-09-08 16:20:54

  1. 将记录存储为salt的表行号是否可行?(或此唯一数字的函数)。
  2. 我会将信息存储在服务器上,因为作为一个原则问题,我永远不会相信互联网上的客户端。如果您真的想在客户端上存储信息,您将使用您的私钥对其进行数字签名或加密,并在投票时验证或解密它。这是否可以接受取决于投票的性质:对于竞选公职,我会选择服务器,去哪里吃团队午餐,我也会选择服务器。
  3. 给出反馈意见(并记录下来),否则你就会面临这样的风险:在真正的选民有时间投票之前,甚至没有人知道合法的选票是否被压缩和使用。
票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/296473

复制
相关文章
数据导入与预处理-拓展-pandas可视化
关于pandas的可视化的用法还有很多,这里不再拓展,但还是建议使用matplotlib,seaborn等库完成绘图。
用户2225445
2022/11/12
3.2K0
数据导入与预处理-拓展-pandas可视化
如何在折线图上添加动画效果?
要在 Chart.js 的折线图上添加动画效果,可以使用 Chart.js 提供的配置选项来实现。以下是一个示例,展示了如何在折线图上添加简单的动画效果:
王小婷
2023/09/09
5180
Echarts堆叠折线图ajax获取数据展示
先看效果图,效果图如下。 html <div class="row" > <div id="main"></div> </div> js // ajax加载数据 $.ajax({ url :
王小婷
2019/03/08
1.5K0
Echarts堆叠折线图ajax获取数据展示
图表解析系列之柱状图
是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列。——维基百科
Data探险实验室
2023/02/23
2.7K0
图表解析系列之柱状图
手把手教你用plotly绘制excel中常见的16种图表(上)
最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制!
可以叫我才哥
2021/08/05
4.1K0
安卓MPAndroidChart绘制多层级的堆叠条形图
这次是在上一篇的基础上增加的,所以导包这些啥的就跳过了研究了一下代码,发现主要的区别就在于增加data的时候,第二个参数传递的是一个数组,然后就变成了堆叠条形图。
SingYi
2022/07/14
1.3K0
安卓MPAndroidChart绘制多层级的堆叠条形图
了解绘制条形图和折线图的细节
考虑到公众号后台数不胜数的提问其实并不是生物学知识或者数据处理知识的困惑,仅仅是绘图小技巧以及数据转换的困难。所以我们一再强调系统性掌握编程知识的重要性,在这个打基础方面我让实习生“身先士卒”,起码每个人在每个编程语言上面都需要看至少五本书而且每本书都需要看五遍以上,并且详细的记录笔记。
生信技能树
2022/06/08
7.2K0
了解绘制条形图和折线图的细节
原来使用 Pandas 绘制图表也这么惊艳
Pandas 是一种非常流行的数据分析工具,同时它还为数据可视化提供了很好的选择。
周萝卜
2022/09/28
4.7K0
Origin绘图之条形图上加曲线拟合图
有时,写论文时,我们要做一些描述性统计,经常用到条形图来表示我们的数据,同时在条形图上可以加入曲线拟合的情况。如下图所示:
全栈程序员站长
2022/08/29
1.4K0
Origin绘图之条形图上加曲线拟合图
玩转数据地图系列之——地图上的迷你条形图
最近忙的厉害,产量下降的有点严重,感谢各位还没取关的小伙伴儿。 一周前更新了一篇数据地图上的气泡散点图的内容,不知怎地,这段时间就是跟地图死磕上了,今天还是数据地图,不过是在数据地图上呈现条形图、柱形图。 之前的一篇因为有现成的作图包支持,geom_scatterpie函数不用花费太大力气就解决了数据地图上的气泡散点图问题。 可是到目前为止我还没有发现支持对应坐标位置的条形图、柱形图,这一篇是参考了知乎上大神提供的思路。 加载包: library(maptools) library(ggplot2) lib
数据小磨坊
2018/04/11
2.6K1
玩转数据地图系列之——地图上的迷你条形图
5个快速而简单的数据可视化方法和Python代码
数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,你通常会进行探索性数据分析(EDA),以获得对数据的一些见解。创建可视化确实有助于使事情更清晰和更容易理解,特别是对于更大的、高维的数据集。在项目接近尾声时,以一种清晰、简洁和引人注目的方式展示最终结果是非常重要的,这样你的受众(通常是非技术客户)就更加容易理解。
AI算法与图像处理
2019/05/22
2.2K0
数据可视化设计指南
数据可视化是一种将密集复杂数据信息以视觉图形的形式呈现。设计出来的视觉效果简化了数据,让用户分析研究比较数据变得容易以及可以更好地向领导或者团队讲述“故事”——可以帮助用户更好地做出决策。
Banber可视化云平台
2021/07/06
6.3K0
数据可视化设计指南
Python中最常用的 14 种数据可视化类型的概念与代码
收集数据后,需要对其进行解释和分析,以深入了解数据所蕴含的深意。而这个含义可以是关于模式、趋势或变量之间的关系。
数据STUDIO
2022/02/24
9.8K0
Python中最常用的 14 种数据可视化类型的概念与代码
【MATLAB】进阶绘图 ( Bar 条形图 | bar 函数 | bar3 函数 | Bar 条形图样式 | 堆叠条形图 | 水平条形图 | barh 函数 )
bar 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/bar.html
韩曙亮
2023/03/29
6.2K0
【MATLAB】进阶绘图 ( Bar 条形图 | bar 函数 | bar3 函数 | Bar 条形图样式 | 堆叠条形图 | 水平条形图 | barh 函数 )
可视化图表样式使用大全
Severino Ribecca 是一位平面设计师,也是数据可视化的爱好者,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
代码医生工作室
2020/02/20
9.7K0
60 种常用可视化图表,该怎么用?
数据可视化的爱好者Severino Ribecca,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
Python研究者
2022/05/21
9.3K0
60 种常用可视化图表,该怎么用?
常用60类图表使用场景、制作工具推荐!
数据可视化的爱好者Severino Ribecca,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
用户8949263
2022/05/23
9.2K0
常用60类图表使用场景、制作工具推荐!
双坐标分别绘制条形图和折线图
生信技能树jimmy
2023/09/26
3350
双坐标分别绘制条形图和折线图
52个数据可视化图表鉴赏
一、数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。它是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。
数据STUDIO
2022/02/24
6.1K0
52个数据可视化图表鉴赏
Pandas绘图功能
可视化是用来探索性数据分析最强大的工具之一。Pandas库包含基本的绘图功能,可以让你创建各种绘图。Pandas中的绘图是在matplotlib之上构建的,如果你很熟悉matplotlib你会惊奇地发现他们的绘图风格是一样的。
用户3577892
2020/11/12
1.8K0

相似问题

tableau中组合堆叠条形图/累计折线图上的合计

13

堆叠条形图上的数据标签

11

堆叠条形图上的条件圆角

28

SSRS堆叠条形图标签位置

20

PowerBI:在组合的堆叠条形图和折线图上设置总计的格式

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档