TsgcWebSocketHTTPServerÖ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

Sunucunun hangi origin'lerden WebSocket handshake'leri kabul ettiğini kısıtlamak için OriginsAllowed'ı kullanın. Varsayılan olarak tüm origin'lere izin verilir; boş olmayan herhangi bir değer bir beyaz listeyi etkinleştirir ve sunucu, Origin başlığı eşleşmeyen bağlantıları kapatır. Kalıplar port için joker karakterleri kabul eder (örneğin tek bir origin için http://127.0.0.1:5555 veya o host'taki herhangi bir portu kabul etmek için http://127.0.0.1:*). Birden fazla origin'i virgülle ayırın. OriginsAllowed'ı boş bir dizeye 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, sunucu 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, sunucu, 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 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 := TsgcWebSocketHTTPServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;

Özelliklere Dön