首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HTML5 WebSocket IP 訪問控制:在 Web 伺服器層面配置拒絕/允許名單

     編輯:程式設計綜合問答

WebSocket 本質是 **HTTP 升級協議**,IP 訪問控制**不在 WebSocket 應用層實現**,而應在 **Web 伺服器(反向代理)層** 統一配置。

主流伺服器配置示例

伺服器配置方式
IIS站點 → 「IPv4 位址和網域限制」→ 添加「拒絕/允許」規則
Nginxallow 192.168.1.0/24; deny all; 在 location /ws/ 或 server 上下文
ApacheRequire ip 10.0.0.0/8 / Require not ip 192.168.1.100 (2.4+)
TomcatRemoteAddrValve 在 Context 或 Engine
Node.js (Express)中間件 app.use((req,res,next)=>{ if(blacklist.has(req.ip)) return res.sendStatus(403); next(); })

進階:應用層二次校驗(雙重保險)

// WebSocket 握手階段攔截
wss.on('connection', (ws, req) => {
    const ip = req.socket.remoteAddress.replace('::ffff:', '');
    if (blockedIPs.has(ip)) {
        ws.close(4001, 'IP blocked');
        return;
    }
    // 正常業務
});

建議策略

  1. 邊界層(Nginx/IIS/防火牆):硬性封禁惡意 IP 段、已知爬蟲、攻擊源。
  2. 應用層:基於用戶行為(登錄失敗次數、頻率限制)動態封禁,存 Redis 共享集群狀態。
  3. 避免在 WebSocket 內部硬編碼 IP 判斷:違反單一職責,難以維護。
「WebSocket IP 管控 = Web 伺服器 ACL + 應用層動態熔斷,分層防禦最穩健。」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved