CURL和DDOS问题

时间:2012-11-09 18:50:15

标签: php curl sleep ddos

我需要从远程http服务器获取一些数据。我使用Curl Classes进行多请求。 我的问题是远程服务器的防火墙。我在10000 GET和POST请求之间发送1000。服务器禁止我从DDOS。

İ使用了这些措施。

  • 包仍然包含标题信息

    curl_setopt($ this-> ch,CURLOPT_HTTPHEADER,$ header);

  • 包仍包含随机引用信息

    curl_setopt($ this-> ch,CURLOPT_REFERER,$ refs [rand(0,count($ refs))]);

  • 包仍包含随机用户代理

    curl_setopt($ this-> ch,CURLOPT_USERAGENT,$ agents [rand(0,count($ agents))]);

  • 我通过随机间隔使用sleep函数发送包。

    睡眠(兰特(0,10));

但每次禁止访问服务器1小时。

抱歉我的英文不好:) 谢谢大家。

1 个答案:

答案 0 :(得分:1)

在短时间内向服务器发送大量请求可能会产生与DOS攻击相同的影响,无论您是否打算这样做。快速解决方法是从sleep(rand(0,10));更改睡眠线,这意味着有一个偶然的机会立即向sleep(3);发送下一个请求,这意味着请求之间总是有3秒(大约) 。 3秒应该足以让大多数服务器满意。验证完成后,您可以将值减小到2或1,看看是否可以加快速度。

更好的解决方案是在服务器上创建一个API,允许您在1个或至少只有少数请求中获取所需的数据。显然,这只有在您能够对服务器进行更改(或能够说服那些能够代表您进行更改的人)时才有可能。