最近在上网的时候,看到了HashDos攻击的信息。
在http请求中处理大量参数的时候,服务器的hash table出来的时候,由于查询,删除等的操作比较消耗时间。最终使得CPU 100%的状态。
使得服务器几乎失去响应。如果停止攻击的话,马上就能够恢复。这个并不是某个语言的问题。
具体可以参考:http://cryptanalysis.eu/blog/2011/12/28/effective-dos-attacks-against-web-application-plattforms-hashdos/
- 8 MB of POST data - 288 minutes of CPU time
- 500k of POST data - 1 minute of CPU time
- 300k of POST data - 30 sec of CPU time
解决方法就是下载最新版本,限制这种攻击。
PHP5.3.9可以在php.ini中设置下面的两个参数来限制。
- post_max_size(POST参数的大小; 默认8MB)
- max_input_time(收信处理时间; 默认-1(无限制))
Appache的话设置LimitRequestBody参数。
还有就是使用mod_security来限制。