常見問題

如果您發現任何錯誤,請發佈至 問題回報

常見問題

我能否僅對特定頁面限制工作階段數量?

是的,您可以僅對特定頁面限制工作階段數量。但是,在此之前,您必須先在防火牆面板中關閉「線上工作階段限制」,因為它的範圍是全域的,無法在同一資料池中使用。

在禁用「線上工作階段限制」後,您可以使用 Shieldon 的公開 API。例如,請考慮以下程式碼:

if (strpos($_SERVER['REQUEST_URI'], 'faq/online-session-limit.html') !== false) {
    $firewall->getKernel()->limitSession(5, 300);
}

此頁面 將最大使用者數量限制為 5,每位使用者可查看該頁面 300 秒。

當使用者進入此頁面且使用者數量已達到限制時,將顯示類似以下截圖的對話框:

如何封鎖特定 URL 的所有 IP 位址?

我沒有在防火牆面板中包含「封鎖全部」的功能,以防止某些個體封鎖與 URL / 相關的所有 IP 位址。這樣做將封鎖所有 URL,包括對防火牆面板的訪問。我建議使用 IP 管理器,根據需要設定特定的 IP 範圍。

如果您想要封鎖特定 URL 的所有 IP 位址,以下程式碼將有所幫助。

// 將此程式碼放在 $firewall->run() 之前
if (strpos($_SERVER['REQUEST_URI'], 'example/block-all.html') !== false) {
    $firewall->getKernel()->getComponent('Ip')->denyAll();
}

這是一個範例頁面,封鎖所有 IP 位址的訪問。

當使用者被封鎖時,他們將遇到類似下面截圖的對話框。

警告:如果您點擊此範例連結,您將被封鎖無法訪問此網站。您需要等待 60 分鐘直到封鎖解除。

防火牆面板的預設登入帳號和密碼是什麼?

預設的使用者名稱是 shieldon_user,密碼是 shieldon_pass。登入防火牆面板後,您應該立即更改使用者名稱和密碼。

Shieldon Firewall 能夠真正緩解 DDOS 攻擊嗎?

對於小規模的 HTTP 類型 DDOS 攻擊,我的答案是能夠,但實際情況取決於許多因素,如頻寬、硬體品質、系統調整、程式碼品質等。

讓我們考慮一個簡單的例子。假設您的網站平均頁面大小為 3 MB,而您的伺服器帶寬為 100 Mbps。您的伺服器可以處理大約 12.5 MB/s 的數據傳輸速率。如果有人決定惡意攻擊您的網站,您認為需要多少攻擊來源才能壓垮您的伺服器?這還沒考慮到對 MySQL 連線的潛在壓力。

Shieldon Firewall 中斷這些惡意連線,返回一個小於 50 KB 大小的 CAPTCHA 頁面。它停止進一步執行 PHP 腳本,防止進一步的 MySQL 連線。這樣,當您的網站受到攻擊時,Shieldon Firewall 可以節省記憶體和 CPU 使用量。然而,這僅是針對 HTTP 類型 DDOS 攻擊的緩解策略,而不是最終解決方案。