如何防止Hash碰撞的拒绝式服务攻击?


可能重复的问题
这两段PHP代码为何执行时间差别如此之大?

利用了各语言的Hash算法的“非随机性”可以制造出N多的value不一样,但是key一样数据,使得Hash表成为一张单向链表,从而导致整个网站或程序的运行性能以级数下降,有没有好的办法解决?
除了以下的这些方法,还有什么更好的方法解决吗?
Application vulnerability due to Non Random Hash Functions
关于 Hash Collision DoS 问题(哈希碰撞)

讨论

suilly 12 years, 10 months ago

目前PHP官方已经出过补丁了。要解决这个问题,首先了解漏洞的原理:
可能参考http://www.slideshare.net/chaoslawful/luaphp 淘宝工程师对其的讲解。
了解原因后就可以解决:
1、升级官方最新的补丁,若您使用的语言暂时还没有出的话如lua,则可跳至第二步。
2、限制用户请求的数量与大小,如post大小、PUT 大小等。如果使用nginx的话,可以加一个nginx_lua模块,在server级别里面增加一个权限平衡的脚本就可以了。

luokol answered 12 years, 10 months ago

Your Answer