PHP:同时打开URL来模拟DOS攻击?

时间:2013-04-08 08:42:51

标签: php curl denial-of-service

我已经使用各种反DOS模块(mod_qos,mod_evasive等)配置了我的服务器。我现在要做的是运行一个简单的PHP脚本,多次调用我网站上的URL,以达到网站上的各种限制。理想情况下,可以以某种方式同时打开各种URL的脚本将是理想的。

这可能吗?如果没有,从一个IP模拟多个请求的最简单方法是什么?

我更喜欢在Windows 7中运行的工具吗?

更新:请记住,我希望能够看到我的服务器是否实际阻止了某些请求。我只和AB一起玩过一段时间,但到目前为止它没有告诉我请求被阻止了?

3 个答案:

答案 0 :(得分:3)

我认为你应该试试这个工具,

Apache ab

Siege by Joe Dog Software

Apache JMeter

Apache Bench简单明了

您还应该尝试tsung

here是ruby中github上的内容

但是如果你仍然想在php中模拟ddos,那么我认为在php中你需要利用socket和in loop向你的服务器发送请求,并在不等待服务器响应的情况下断开连接,这样你就可以模拟它。比如“连接 - 调度请求 - 断开连接”并尽可能多次重复此操作。

答案 1 :(得分:2)

这在Windows下非常有用:OpenLoad

我用:

执行它
openload.exe http://www.mysite.com 250

然后我可以在Apache错误日志中轻松看到结果:

tail -f /usr/local/apache/logs/error_log

我可以看到:

[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=59, c=XX.XXX.XX.XXX
[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=60, c=XX.XXX.XX.XXX
etc

答案 2 :(得分:1)

最简单的模拟是在给定域的各个页面上使用async xmlhttp请求迭代器函数,onload事件启动另一个页面url调用并无限循环,或者持续一定次数。为了让它变得更加压倒性,你可以并行打开同一个普通JS + HTML应用程序的多个实例(比如9个,甚至12个),看看是否有任何事情发生,或者服务器发生后会发生什么。已经运行了相当长的时间,可能在大约一个小时的时间内达到了超过100万个请求。