问题标签 [flooding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7033 浏览

ruby-on-rails - rails - 选择验证码插件

Rails 中有很多验证码插件,也有很多类型的防止垃圾邮件和泛滥的解决方案。所以这不仅仅是 Rails 的问题。

让我们看看我们有哪些类型的插件:

1. 经典图片验证码zendesk 的验证码、Simple_captcha、Validates_captcha、winton 的验证码、Raptcha)。

积极的:

  • 可以有效防止自动解密(不确定 Simple_captcha,但似乎 zendesk 和 winton 的验证码都没有实现这一点,因为它们使用预先生成的图像(而不是按需),所以我们可能的垃圾邮件机器人可以从那些图像上学到的)。

消极的:

  • 需要数据库表(至少简单验证码。还不错,但他们在使用后会清理它吗?)。
  • 需要 RMagick 或类似的(对我来说不是那么实际,因为我已经在我的网站上拥有它)。
  • 手动解密失败(据我所知,2/1000 美元的图像)。
  • 对用户来说很烦人,并且会损害转化率。

2.验证码(Recaptcha,Rack-recaptcha)。

积极的:

  • 可以有效防止自动解密。
  • 不需要 Rmagick 和 DB 表。

消极的:

  • 对第 3 方站点进行 api 调用。
  • 手动解密失败。
  • 甚至比以前更烦人。

3. 蜜罐(Negative-captcha、Trap_door、Reverse_captcha、Honeypot-captcha、Bouncy_bots、invisible_captcha)。

积极的:

  • 用户不知道验证码存在。
  • 不需要 Rmagick 和 DB 表。

消极的:

  • 可能无法自动解密(是否有任何机器人可以识别此插件?)。
  • 手动解密失败。

4. 文本库(Humanizer、Brain_buster、Gotcha)。

积极的:

  • 不需要 Rmagick 和 DB 表(Brain_buster 除外)。

消极的:

  • 可能无法自动解密。
  • 手动解密失败。
  • 有点烦人(可以本地化)。

5. 其他(Acts_as_snook)

积极的:

  • 用户不知道验证码存在。
  • 不需要 Rmagick 和 DB 表。

消极的:

不知道有没有,因为很不寻常。但我认为它可能会在洪水泛滥的情况下引起问题,因为有时可能需要帖子的审核。

6. 类似 Akismet 的解决方案(不知道他们的效率)。

积极的:

  • 用户不知道验证码存在。
  • 不需要 Rmagick 和 DB 表。

消极的:

  • 对第 3 方站点进行 api 调用。
  • 将用户的详细信息传送到第 3 方站点(非常非常糟糕)。

我还应该对我的网站说几句话。用户只能在 ajax 请求后看到受保护的表单(例如,在将某些东西放入购物车之后)。现代机器人是否有能力执行 ajax 请求和存储 cookie?

0 投票
2 回答
1103 浏览

java - 如何避免在我非常简单的 Web 应用程序中泛滥并使其可扩展?

我正在尝试使用 JSP 和 Servlet 开发一个非常简单的 Java Web 应用程序。

1)页面上有一个文本框和一个提交按钮,
2)用户在文本框中输入他的名字,比如约翰,然后单击按钮,
3)字符串被转发到我的 servlet,
4)在 doPost 方法我的 servlet,我访问发布的字符串变量,
5)我将使用的 Web 服务有一个sayHello方法,该方法接受一个参数并返回"Hello "与参数连接,
6)所以,我调用sayHelloWeb 服务的方法,获取返回变量并将其转发给 JSP,该 JSP 基本上写入Hello John.

我有两个问题:

1) 泛滥:如何避免对我的 servlet 的请求泛滥?我该如何处理?我想创建一个线程来联系 Web 服务并打个招呼。当请求到达时,我检查线程是否正在运行/忙,如果没有,我处理请求。因此,我每单位时间最多回答 1 个请求。听起来怎么样?

2) 可扩展性:假设今晚有 1,000,000 亿人访问我的 Web 应用程序,并让我的应用程序每次打招呼十次。我如何确保这个应用程序能够很好地扩展?除了服务器所依赖的硬件之外,我还能对 JSP/Servlet 部分做些什么?

我知道这些问题有点笼统,所以我尽量提供尽可能多的细节。我真的很感激一个彻底而中肯的答案=)

提前致谢。

0 投票
2 回答
2795 浏览

java - Java登录服务器防洪

我的 java 服务器目前正被数千个不同的 ip 进行 DDoSed。为了应对它,我一直在通过专用服务器防火墙阻止 ip。然而,越来越多的人不断涌现。这种攻击淹没了我的登录服务器,导致玩家无法登录。

我已经在其他地方询问过,例如我的 Java 应用程序类型的论坛,但我几乎没有得到任何答案。但是他们告诉我这是 DDoS 的一种形式,另一个用户也向我推荐了这个,但我不相信这会起作用。http://www.java2s.com/Open-Source/Java-Document/Net/mina-2.0.0-M1/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java.htm

所以显然这是我的登录服务器上的 DoS,有人有任何线索吗?我将在下面提供登录服务器的主要框架。

0 投票
1 回答
487 浏览

php - php通过会话或IP阻止洪水请求

我想通过会话或 IP 阻止泛洪请求。

这是我的要求。如果任何用户在 1 小时内发送 1000 个请求,我想阻止该请求。我不知道它是由会话或 IP 完成的。请帮助我做到这一点。如果有请提供脚本。谢谢你。

0 投票
1 回答
683 浏览

java - 在 Java/AMF 应用程序中防止泛洪/DOS 攻击

我正在为 Flash 网页游戏开发 Java 后端 - 客户端和服务器使用动作消息格式 (AMF) 进行通信。几周前,我们公司的另一个团队的产品被一名反编译 Flash 客户端的用户入侵,并使用更改后的版本向后端充斥着虚假请求。我们想在我们的新游戏中防止这种攻击。

(更多细节:使用的网络服务器是 Tomcat,AMF 客户端是 BlazeDS。)

我想知道防止这种攻击的最佳方法是什么。我的一些想法:

  • nginx 配置似乎是处理速率限制的最佳位置,但我找不到任何关于 nginx 如何与 AMF 交互的资源。AMF 请求是否直接发送到 Tomcat?

  • 大多数请求都涉及相关用户的 userId 参数。涉及过度使用的用户 ID 的限速请求可能是一种方法 - 但是,只想淹没服务器的攻击者可以轻松地向随机用户 ID 发送垃圾邮件。

  • 执行与上述相同的操作,但使用 IP 地址代替 userIds 可以工作。但是,我不知道是否可以从 AMF 请求中获取 IP 地址。

0 投票
0 回答
569 浏览

jquery - ASP.NET 应用程序中的洪水缓解

我在网站上有一个表单,它使用 jQuery ajax 以 JSON 格式将数据提交到 sendmail.aspx 页面,以异步方式将电子邮件发送到公司邮箱。

我不想使用验证码。这将使用户向我公司的服务提交回叫请求不太舒服。

恐怕有人会使用脚本通过 sendmail.aspx 向我的邮箱提交大量请求。

哪个是控制一个 IP 允许多少 sendmail.aspx OnLoads 的最简单方法?请提供代码片段或指向代码片段。

我尝试使用此处提供的解决方案:

http://madskristensen.net/post/Block-DoS-attacks-easily-in-ASPNET.aspx

但它只会在一秒钟内锁定我的用户。

0 投票
2 回答
170 浏览

javascript - 如何限制元素在一分钟内被点击的次数?

我正在制作一个 PM 系统,我目前正在添加消息星标系统(以便用户可以星标消息)。

问题是,如果用户一直快速地为消息加星标和取消星标(一遍又一遍地单击它),它将弄乱服务器(主机将发出 503 错误,直到进程停止)。要为消息加注星标,只需单击星号即可为其加星标/再次单击以取消加星标。

有没有办法防止它被多次点击,或者在一分钟内点击x次后弹出错误?这将防止它使服务器过载,因为当您单击星号时,它会发送 AJAX 请求并更新数据库;当你取消它的星号时,它会做同样的事情。

如果星号在一分钟左右被点击,是否有 jQuery 显示错误的方法?

这些是我的主演功能:

提前致谢!

0 投票
3 回答
1564 浏览

c++ - 洪水填充 C++

我对洪水填充的实施有疑问。
任务是要求用户点击图像的白色部分(表示种子点),他想用黑色填充。
该操作应在二进制图像上完成。
我正在使用CImg库。
不能使用递归算法。
我想出了一些东西,但它不能正常工作(间隙仅在种子点变为黑色)。我根本不熟悉队列,所以问题可能出在它们的实现上。

0 投票
2 回答
751 浏览

python - 如何防止 Django Web 应用程序中的服务器泛滥?

我正在开发一个 Python-Django 网络应用程序。它允许访问我网站的人将已经创建的投票小部件嵌入到他们的网站中。问题在于,当访问者在访问量很大的网站中嵌入投票时 - 以至于很多人同时对投票进行投票。它可能导致过载,我不知道如何处理。

我的网站托管在共享主机上。服务器是带有 mod_fcgid 的 Apache。数据库是 MySQL。

有人会给我一条建议,在这种情况下该怎么办?

谢谢!

0 投票
1 回答
1864 浏览

algorithm - 网络上的泛洪算法

所以我必须模拟一个课程项目的原始洪水算法,我想澄清和确认一些想法,因为在互联网上似乎很难找到我想要的东西(所以我一定做错了什么)......

无论如何,据我所知,泛洪算法是当一个节点想要将一系列数据包发送到目的地时,将每个数据包发送到每个连接的节点。然后,这些接收节点通过将它们收到的数据包的副本发送到所有连接的节点(发送原始数据包的节点除外)来重复该过程。依此类推,直到数据包到达目的地。所以基本上这个算法可以确保数据包在网络泛滥的同时到达目的地;因此得名。所以这是我和我的教授澄清的:

1)我假设生成的数据包将有一个跳跃计数器,它的值对于每个数据包都是相同的,在每个访问的节点上都会减少,当它达到 0 时数据包将被丢弃。我还假设该值将取决于网络的大小,他同意但没有说明网络的大小如何影响它。你拿它的直径吗?有人能帮我一下吗?

2) 一个节点在自己身上保留他们收到的数据包的副本(为什么?如果他们将其插入的一个节点没有发送回确认,则重新发送?)并且当跳跃计数器达到 0 时,数据包从网络中掉线,但是当一个数据包到达一个已经拥有它的副本的节点时会发生什么?我假设节点丢弃它,因为它有一个副本并且逻辑上已经将它发送给它的所有邻居,但我不确定。有人可以澄清一下吗?

3)所有节点都具有它们可以容纳的最大数据包容量。那么当一个节点达到最大容量时“停止”工作并且不接受进一步的数据包或以 FIFO 方式丢弃?我假设第一个,因为该项目的目标之一是估计哪些节点将首先被淹没。但实际上会发生什么?连接到它的节点不断发送数据包,只是没有得到确认,因为它丢弃它们或发送一个不再接收数据包的信号,我不知道,将其路由表中的成本更改为一个值这意味着没有连接/或无限成本,因此他们不再发送任何东西。

4)另外我忘了问,生成数据包的源节点呢?它还保留副本吗?我认为确实如此,但它不是最有可能首先泛滥的节点,因为它会在生成的那一刻保留每个数据包的副本?大概是我想多了……