- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个 asp.net MVC web 应用程序,客户要求我们尽最大努力使它尽可能地抵御拒绝服务攻击。他们担心网站可能会收到恶意的大量请求,目的是减慢/关闭网站。
我已经与产品所有者讨论过这个问题,因为它确实超出了实际 Web 应用程序的职权范围。我认为监控流量和响应恶意请求是托管/网络团队的责任。
但是他们坚持认为应用程序应该内置一些预防措施。但他们不想实现 CAPTCHA。
有人建议我们限制在给定时间范围内可以为 session 提出的请求数量。我在想做这样的事情 Best way to implement request throttling in ASP.NET MVC?但是使用 session ID 而不是客户端 IP,因为这会给来自公司防火墙后面的用户带来问题——他们的 IP 都是相同的。
他们还建议添加关闭站点某些区域的功能 - 建议管理员用户可以关闭数据库密集区域......然而,这将通过 UI 控制,如果它在 DOS 下肯定攻击管理员用户无论如何都无法访问它。
我的问题是,这样做真的值得吗?真正的 DOS 攻击肯定会更高级吗?
您还有什么建议吗?
最佳答案
拒绝服务攻击几乎可以是任何会影响您为他人提供的服务稳定性的行为。在这种情况下,您谈论的是网络 DoS,并且如前所述,这通常不会发生在您的应用程序级别。
理想情况下,这种攻击会在网络级别得到缓解。有专门为此构建的防火墙,例如 Cisco ASA 5500 series它的工作原理是从基本保护到高吞吐量缓解。它们是非常智能的盒子,我可以保证它们在阻止此类攻击方面的有效性,只要使用适合您获得的吞吐量的正确模型即可。
当然,如果无法访问为您执行此操作的硬件防火墙,您可以采取一些权宜之计来帮助防御这些类型的攻击。 请注意,这些都不会达到专用防火墙的一半效果。
一个这样的例子是 IIS 模块 Dynamic IP Restrictions它允许您定义最大并发请求的限制。然而,在实践中,这有一个缺点,它可能会开始阻止来自浏览器的合法请求,这些浏览器具有高并发请求吞吐量,用于下载脚本和图像等。
最后,您可以做的事情真的很粗糙,但也真的很有效,就像我之前写的那样。基本上,它是一个小工具,用于监视来自同一 IP 的重复请求的日志文件。因此,假设从 1.2.3.4
向 /Home
发出 10 个请求,时间超过 2 秒。如果检测到这种情况,将添加防火墙规则(在 Windows 高级防火墙中,使用 shell 命令添加)以阻止来自该 IP 的请求,然后可以在大约 30 分钟后删除该规则。
就像我说的那样,它非常粗糙,但是如果您必须在服务器级别执行此操作,那么您实际上并没有太多明智的选择,因为它不是应该执行的位置。您是完全正确的,责任在某种程度上由托管服务提供商承担。
最后,您对验证码的看法也是正确的。如果有的话,它可以通过一遍又一遍地执行图像生成(这可能是资源密集型的)来协助 DoS,从而使您的资源更加匮乏。验证码生效的时间是,如果您的网站被自动注册机器人发送垃圾邮件,但我相信您已经知道了。
如果您真的想在应用程序级别做一些事情来取悦当权者,那么在您的应用程序中实现一些基于 IP 的请求限制是可行的,尽管 90% 是无效的(因为您仍然必须处理请求)。
关于c# - 防止恶意请求 - DOS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706188/
在MS-DOS中,如果输入dir *.pdf,我将在目录中获取所有PDF文件。除了PDF文件,有什么方法可以获取所有内容?像dir !*.pdf一样? 谢谢! 最佳答案 我认为findstr有一个/v
我们如何在 DOS 中实现递归目录列表? 我正在 DOS 中寻找一个命令或脚本,它可以为我提供类似于 Unix 中的 ls -R 命令的递归目录列表。 最佳答案 您可以使用: dir /s 如果您需要
当我使用 ren "C:\folder\file""C:\folder\file.txt" 出现错误“命令的语法不正确。” 但是如果我 CD 到文件夹并使用 ren "file""file.txt"
比如,我能不能做 回显 3 + 5 并得到 8? 是否可以使用日期进行计算? 最佳答案 您可以使用set/a 来计算数学表达式: set /a x=3+5 echo %x% 编辑:这是一行: @for
我正在寻找一个 DOS 脚本来删除根目录中的所有文件和子目录,但根目录中的一组批处理文件 (*.bat) 除外。任何 DOS 运动员都知道一种简单的方法来做到这一点? 更新 谢谢大家的帮助。这就是我现
如何在目录及其子目录中搜索文件并以简洁的格式显示文件名及其创建时间。 我尝试了dir sam.csv/b/s/a-d 但是不起作用。 输出应该如下所示 c:\Data\Sam.txt 10/10/20
我有一个在并发 DOS 3.1 上运行的软件,我使用 QEMU 5.1 对其进行模拟。 在此程序中,有多个打印数据的选项。问题是到达我的主机的数据与发送的数据不对应。 启动qemu的命令: qemu-
我有一个在并发 DOS 3.1 上运行的软件,我使用 QEMU 5.1 对其进行模拟。 在此程序中,有多个打印数据的选项。问题是到达我的主机的数据与发送的数据不对应。 启动qemu的命令: qemu-
在 C 中,我如何写入特定的内存位置,例如视频内存 b800,在 DOS 下(真正的 DOS,MS DOS 6.22) 我知道 C 没有内置任何东西可以做到这一点,但可能有一些特定于平台的东西,例如可
我有一个大约 15 年前购买的非常古老的应用程序,它由 5 个 .exe 文件组成,用于存储患者的个人资料和信息。问题是该应用程序被编程为在特定计算机上运行。 由于我对破解知之甚少,我尝试使用 win
这个问题已经有答案了: How to redirect stderr to null in cmd.exe (1 个回答) 已关闭 4 年前。 我想抑制在 DOS 下运行的脚本的输出,类似于 *nix
我想从 MATLAB 在 dos 中执行一个批处理文件,并立即将控制权返回给 MATLAB。但是,我想在不打开 dos 窗口的情况下执行此操作(或者,至少,让 dos 窗口在最后消失)。 如果我这样格
最初... 我在 10 年前(大学)开始用 C 编程。我使用的 IDE 是 Turbo C++ IDE。 我所有的 c 程序都是 16 位的。 内存模型:巨大。 图形:4 位(16 色)。 图形驱动:
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 11 年前关闭。 Improve this
我需要一个批处理文件中的脚本,当我运行它时,它会将我昨天的日期放入一个变量中。包括 3 月 1 日等条件(根据年份可能是 2 月 28 日或 29 日) 最佳答案 假设您的意思是 ms-dos 批处理
我有一个可以做几件事的批处理文件。如果其中一个失败,我想退出整个程序。例如: @echo off type foo.txt 2>> error.txt >> success.txt mkdir bob
我正在尝试编写一个批处理脚本,将多个 css 文件合并到一个文件中。到目前为止,我已经想出了这个...... # Set start folders & files set fn1=filename.
我有不同的文件夹,例如:a、b、c 等,每个文件夹都有不同的文件,例如:x、y、z 等。 文件 x,y,z 位于每个文件夹中。有没有办法使用单个命令从不同文件夹复制每个文件?我希望结果是所有文件夹中的
我需要获取命令行输出的第一行而不是所有行,例如,如果我给 C:\Temp> dir 我只需要显示第一行, 11/15/2012 06:58 PM
如何使用 dos 批处理文件命令将日期设置为当前日期。 最佳答案 如果您需要在批处理文件中使用当前日期,则变量 %date% 具有当前日期: echo %date% 23/02/2010 它使用您计算
我是一名优秀的程序员,十分优秀!