• 技术文章 >后端开发 >php教程

    PHP5.2.X防止Hash冲突拒绝服务攻击的Patch方法_PHP教程

    2016-07-13 17:10:33原创492
    文章分析了关于PHP5.2.X防止Hash冲突拒绝服务攻击的Patch方法,有需要了朋友可参考一下。


    上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项:

    Added max_input_vars directive to prevent attacks based on hash collision这个预防的攻击, 就是”通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞”(multiple implementations denial-of-service via hash algorithm collision).

    攻击的原理很简单, 目前很多语言, 使用hash来存储k-v数据, 包括常用的来自用户的POST数据, 攻击者可以通过构造请求头, 并伴随POST大量的特殊的”k”值(根据每个语言的Hash算法不同而定制), 使得语言底层保存POST数据的Hash表因为”冲突”(碰撞)而退化成链表.


    这样一来, 如果数据量足够大, 那么就可以使得语言在计算, 查找, 插入的时候, 造成大量的CPU占用, 从而实现拒绝服务攻击.

    PHP5.4是通过增加一个限制来尽量避免被此类攻击影响:

    - max_input_vars - specifies how many GET/POST/COOKIE input variables may be accepted. default value 1000

    大家如果有用5.2的, 如果被此类攻击威胁, 可以打上下面的patch, PHP5.3的, 可以考虑升级到5.3.9, 已经包含了此patch(因为5.3.9目前是RC状态, 所以如果不愿意升级, 也可以参照这个patch自己为5.3写一个):

    防止办法

    1. Cd into the PHP src run: patch -p1 < php-5.2.*-max-input-vars.patch
    2. Since the latest PHP 5.3.9-RC4 has fixed this issue, so for 5.3 you can upgrade to 5.3.9RC4
    Of course if you don't want to upgrade to a RC version, you can simply tweak this patch into a 5.3 suitable patch.


    大家可到https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars下载包

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/629665.htmlTechArticle文章分析了关于PHP5.2.X防止Hash冲突拒绝服务攻击的Patch方法,有需要了朋友可参考一下。 上周的时候Dmitry突然在5.4发布在即的时候, 引入了一...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP5.2.X 防止 Hash 冲突 拒绝 服务 攻击 Patch 方法 文章 分析 关于 PHP5.2.X
    上一篇:PHP-5.3.9远程执行任意代码漏洞(CVE-2012-0830) 详解_PHP教程 下一篇:关于PHP文件包含一些漏洞分析_PHP教程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php-fpm配置详解_php实例• 用PHP+MySQL搭建聊天室功能实例代码_php实例• php和数据库结合的一个简单的web实例 代码分析 (php初学者)_php实例• 想下载个论坛,哪种好?该如何解决• PHP 读取大文件时,怎样得到以回车换行的一行数据。该怎么解决
    1/1

    PHP中文网