首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API密钥DDOS预防方法

API密钥DDOS预防方法
EN

Security用户
提问于 2014-07-25 15:56:42
回答 2查看 1.2K关注 0票数 0

嗨,我只是想要一些反馈,一个DDOS阻止我正在设计的php脚本。这很简单,我想得到一些反馈,看看你们是否认为这是有效的。

我目前正在使用ulogin框架作为基础,并且已经实现了API。目前,用户将发送一个带有密钥的请求。将对照数据库检查此键,以确定其是否正确。因此,如果密钥不正确,程序将返回。

如果键是正确的,那么将计算一些统计数据。第一件事是增加计数器。每秒平均命中率将从他们开始请求的时间计算到当前时间。此外,还有一个X秒的窗口,其中计数器将被重置(例如300)。程序员指定在此窗口中应允许的最大请求数。如果密钥超过了每个stats重置(窗口)请求的限制,或者超过了每秒一定数量的请求,则它们将被阻塞,而不被授予访问权限。然而,计数器仍然会增加,但另一个计数器将启动(块计数)。

当在窗口的末尾将计数器设置为0时,下一个窗口的计数将被设置为任何块计数,而阻塞计数将设置为0。如果用户没有在X(窗口)秒内使用API键,那么两个计数器都将被重置为0。

我已经添加了一个传递变量(0-1),它将把块计数的百分比取到下一个窗口,而不是整个块计数,但是我认为没有必要这样做。

这件事已经开始了吗?这会防止(D)DOS服务器使用的嗅探API密钥吗?你的想法是什么?)

EN

回答 2

Security用户

回答已采纳

发布于 2014-07-25 21:22:18

您的代码有利于监视用户在服务器上的活动,但老实说,它无法避免DDOS攻击,因为DDOS攻击的目的是向服务器发送大量请求,使其过于繁忙,无法响应预期的用户。

您的代码似乎正在进行大量检查,以确定请求的数量是否超出了您的标准,这意味着不仅攻击者已经实现了使您的服务器忙碌的目标,而且您还在帮助他处理大量由您的代码完成的处理。

假设每次有请求时,您的代码必须在数据库中搜索并检索信息,然后比较它们并做许多其他的事情。

在PHP中,没有什么可以阻止这种攻击。而且,如果攻击者使用UDP攻击,您的代码将什么也不做,因为Apache监听TCP端口。唯一能保护你的网站免受DDOS攻击的是你的主机公司。公司需要的设备包括:

  1. 防火墙
  2. 限速开关
  3. 适当路由器
  4. 应用前端硬件
  5. 基于IPS的预防
  6. 基于DDS的防御
  7. 黑孔和沉孔
  8. 清洁管道

但是,如果您需要一个安全的登录系统,您可以使用captcha,甚至是您自己创建的。只需生成一个随机的5位数字,并在PHP中创建一个图像,并在其中打印数字,并在表单上显示图片,并且当用户提交表单时,检查生成的数字是否与输入的一个用户匹配。还可以使用PHP/JavaScript库加密客户端的用户输入,并在服务器上对它们进行解密。

票数 2
EN

Security用户

发布于 2017-04-20 09:42:13

在DDoS方面,托管公司不会为你做很多事情。一旦它变得大(大多数主机都是小的)和/或淹没ISP,他们就会黑洞你。尝试一些类似Prolexic或Akamai的东西(稍后使用他们的新版本来做API )。祝好运。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/63946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档