作為一名開發(fā)者,網(wǎng)站安全一直是我關注的重點。最近,我的網(wǎng)站遭遇了一系列來自不明ip地址的惡意請求,這些攻擊導致服務器負載飆升,甚至出現(xiàn)了短暫的無法訪問。起初,我嘗試在服務器層面配置防火墻規(guī)則,但這種方法配置復雜,維護起來也相當麻煩,而且難以應對動態(tài)變化的攻擊來源。
我需要一種更靈活、更易于管理的解決方案。在一番搜索之后,我發(fā)現(xiàn)了Middlewares/Firewall這個php中間件。它輕量級、易于集成,并且能夠有效地攔截來自指定IP地址或IP段的請求。
Middlewares/Firewall 的安裝非常簡單,只需使用 composer:
composer require middlewares/firewall
安裝完成后,我們可以像這樣輕松地將其集成到我的應用中:
use MiddlewaresFirewall;use MiddlewaresUtilsDispatcher;Dispatcher::run([ new Firewall(['127.0.0.1', '192.168.1.<em>']), // 白名單IP // ... 其他中間件 ...]);
這段代碼創(chuàng)建了一個防火墻中間件實例,并將其添加到中間件鏈中。[‘127.0.0.1’, ‘192.168.1.’] 指定了允許訪問的IP地址和IP段(白名單)。 你可以根據(jù)需要添加更多IP地址到白名單中。
更進一步,Middlewares/Firewall 還支持黑名單功能,可以方便地攔截來自特定IP地址或IP段的請求:
use MiddlewaresFirewall;use MiddlewaresUtilsDispatcher;Dispatcher::run([ (new Firewall(['127.0.0.1']))->blacklist(['192.168.0.100', '10.0.0.<em>']), // 白名單和黑名單組合 // ... 其他中間件 ...]);
這段代碼中,我們首先定義了一個白名單,只允許 127.0.0.1 訪問,然后使用 blacklist() 方法添加了一個黑名單,阻止 192.168.0.100 和 10.0.0. 范圍內(nèi)的IP地址訪問。
此外,如果你的應用使用了自定義的IP獲取方式(例如通過X-forwarded-For頭),Middlewares/Firewall 也支持通過 ipAttribute() 方法指定獲取IP地址的屬性:
(new MiddlewaresFirewall(['123.0.0.*']))->ipAttribute('client-ip');
這個特性使得 Middlewares/Firewall 能夠與其他中間件,例如用于檢測客戶端IP的中間件,無縫集成。
Middlewares/Firewall 簡潔的API和強大的功能,讓我能夠快速有效地構建一個安全的網(wǎng)站訪問控制系統(tǒng)。自從部署了這個中間件后,惡意請求的數(shù)量顯著下降,服務器負載也得到了極大的改善。 它極大地簡化了我的工作,讓我能夠專注于其他更重要的開發(fā)任務。 強烈推薦給所有需要提升網(wǎng)站安全性的開發(fā)者們! 希望這篇文章能夠幫助你!