PHP5.2.X防止Hash衝突拒絕服務的攻擊的Patch方法_PHP教程

來源:互聯網
上載者:User
文章分析了關於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下載包

http://www.bkjia.com/PHPjc/629665.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/629665.htmlTechArticle文章分析了關於PHP5.2.X防止Hash衝突拒絕服務的攻擊的Patch方法,有需要了朋友可參考一下。 上周的時候Dmitry突然在5.4發布在即的時候, 引入了一...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.