當你發現你的網站長時間變慢或主機的 CPU 持續在高擋。如果是這樣,恭喜你。你可能中了大量掃描。此時通常個人的作法是 SSH 進主機看 apache/nginx 的 access 的記錄看有無大量的特定 IP 出現。

如圖上所示。短時間大量的同一 IP 連線。如果以單筆來看看似正常的搜尋資料。但實際上如果是人來操作是不會在短時間內連按搜尋這麼多次。我們來看另一張畫面就會比較清楚。

依紅字所秀那就是 SQL injection 的程式。這通常表示此來源 IP 正在作漏洞掃描。此時的記錄檔就足以証明此 IP 是可被擋掉的無效流量。
一般要擋掉惡意的 IP 連線有很多方式,這邊我只寫出較為簡單的方式。
- 1:如果你有使用 cloudflare 可用其 firewall 擋掉。
- 2:如果你是自架主機可用 Linux 上的 ufw 或 Windows 上的防火牆檔掉。
- 3:如果你使用的網站是 apache 則可用 htaccess 文字檔擋掉。
方法 1 :前往 cloudflare 後台 Security->WAF->Custom rules 建立規則。如下所示把 來源 IP 符合的擋掉

方法 2:SSH 進 Linux 執行 ufw command 。如下所以。擋掉所有來至 192.168.1.5 的連線需求
sudo ufw deny from 192.168.1.5 to any
方法 3:SSH 進 Linux 在 網站的根目錄下
執行
/var/www/html$ vi .htaccess
在文字檔最上方加上
<IfModule mod_rewrite.c>
RewriteCond %{REMOTE_ADDR} ^45\.144\.227\.34$
RewriteRule . - [R=403,L]
</IfModule>
把 45.144.227.34 換成你要擋的 IP .
修改完成後存檔離開。
以上三種方式大概是可以初步快速解決問題的方式。當然還是有其它的方法可以解決。只是處理的時間跟需不需要額外寫程式。各主機商也可能有自已的後台介面可協助處理擋掉各別的 IP ,如 cPanel 。方式有很多端看主機商或程式環境來選擇最佳的方式來解決。