TsgcWebSocketLoadBalancerServerÖzellikler › SecurityOptions

SecurityOptions Özellik

Handshake kabul kurallarını tanımlar: izin verilen kökenler ve RFC 6455 handshake doğrulaması.

Sözdizimi

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Üyeler

NameVarsayılanAçıklama
OriginsAllowed""Tarayıcı WebSocket handshake'leri için kabul edilen kökenlerin virgülle ayrılmış izin listesi. Boş bırakılması tüm kökenlere izin verir.
EnforceWebSocketVersionTrueSec-WebSocket-Version13 olmayan bir RFC 6455 handshake'ini reddeder.
ValidateWebSocketKeyTrueSec-WebSocket-Key'i geçerli bir 16 baytlık base64 nonce olmayan bir RFC 6455 handshake'ini reddeder.

Remarks

Yük dengeleyicinin hangi tarayıcı kökenlerinden WebSocket handshake'leri kabul ettiğini kısıtlamak için OriginsAllowed kullanın. Varsayılan olarak tüm kökenlere izin verilir; boş olmayan herhangi bir değer bir izin listesini etkinleştirir ve yük dengeleyici, Origin başlığı eşleşmeyen bağlantıları, bir arka uç seçilmeden önce kapatır. Desenler, bağlantı noktası için joker karakterleri kabul eder (örneğin tek bir köken için http://127.0.0.1:5555 veya o ana bilgisayardaki herhangi bir bağlantı noktasını kabul etmek için http://127.0.0.1:*). Birden fazla kökeni virgülle ayırın. OriginsAllowed'ı boş bir dizgeye ayarlamak izin verici varsayılanı geri yükler.

EnforceWebSocketVersion ve ValidateWebSocketKey WebSocket yükseltmesinin kendisini güçlendirir ve varsayılan olarak etkindir. EnforceWebSocketVersion etkin olduğunda, yük dengeleyici 13 dışında bir sürüm isteyen bir handshake'e yükseltmeyi tamamlamak yerine HTTP 426 Upgrade Required ve bir Sec-WebSocket-Version: 13 başlığı ile yanıt verir. ValidateWebSocketKey etkin olduğunda, yük dengeleyici, RFC 6455 tarafından gerektirildiği üzere Sec-WebSocket-Key'i eksik olan veya 16 bayta çözülen 24 karakterlik bir base64 değeri olmayan herhangi bir handshake'i HTTP 400 Bad Request ile reddeder. Her iki kontrol de yalnızca RFC 6455 yoluna uygulanır, bu nedenle eski Hixie76 istemcileri etkilenmez. Yalnızca uyumsuz bir istemciyle birlikte çalışmanız gerekiyorsa ikisinden birini False olarak ayarlayın.

Aynı seçenekler TsgcWebSocketServer, TsgcWebSocketHTTPServer ve http.sys sunucusu TsgcWebSocketServer_HTTPAPI üzerinde de mevcuttur. Gelen mesajların boyutunu sınırlamak için MaxMessageSize'a bakınız.

Örnek


oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'https://app.example.com';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;

Özelliklere Dön