
每當一個煩人的滲透測試人員試圖在我的應用程式中找到安全漏洞時,我的伺服器就會崩潰。我在錯誤日誌中看到這一點:
17:48:48 +0200] "\x16\x03\x01\x00M\x01\x00\x00I\x03\x03\xDBJA\xC5\xB17\xF6\xDA \xD4\xEEEg0\xE0\xF2\xF2\xC9S\xE4\xF9v}\x1E\x00\xC8\xC3d\x 80h;= \x1F\xD2\xAF?\x88\x8A\xA2\xCF\x16G\x99\x1D\x91" 400 173 "-" "-"
伺服器的設定類似於普通的 nginx + php-fpm 伺服器。連接埠 80 重定向到 443 且 ssl 配置正確。
我還添加了這一行:
if ($request_method !~ ^(GET|HEAD|POST|OPTIONS|DELETE|PUT|PATCH)$) { return 405; }
(在兩種伺服器配置中)
這也是唯一一個導致 400 的「滲透測試」請求。我檢查了我的配置,但看起來沒問題。
我在另一台具有類似配置的伺服器上以及在具有 nginx -> apache_mpm_prefork_fpm 配置的伺服器上遇到相同的問題。
任何想法這是什麼以及如何保護伺服器免於崩潰。如何重現這樣的滲透測試請求(我在郵遞員中嘗試過,但得到了不同的結果)。
多謝。
編輯
我想出瞭如何重現該日誌:https://servername:80。
但我不知道如何阻止此類請求。我用 $scheme 嘗試過,但請求已加密。我嘗試將 ssl 添加到配置中,但沒有任何改變。這些滲透測試/爆炸站點嘗試向連接埠 80 發送 https 請求肯定是有原因的。