在 Web 應用程序中使用基于套接字的通信往往容易出錯。
只有在與比較陳舊的系統進行通信時,J2EE 標準才允許 use of sockets,因為此時沒有較高高級別的協議可用。自己編寫通信協議將需要解決許多安全上的問題,包括:
— 輸入信號與輸出信號的比較
— 協議版本間的兼容性
— 通道安全
— 錯誤處理
— 網絡限制(防火墻)
— 會話管理
若不經過安全專家的詳細審查,自定義的通信協議將面臨諸多安全隱患。
在自定義標準協議的應用過程中,也會碰到許多同樣的問題。通常有很多可用的資源都可以解決與標準協議相關的各種安全問題,然而,攻擊者也能獲取這些資源。
[1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 246
[2] Java 2 Platform Enterprise Edition Specification, v1.4 Sun Microsystems