TsgcHTTPServer › Özellikler › SecurityOptions

SecurityOptions Özellik

Paylaşılan sunucu motorundan miras alınan handshake kabul kuralları; handshake kontrolleri yalnızca WebSocket yükseltme yoluna uygulanır ve bu bileşende hiçbir zaman tetiklenmez, ancak HSTS_Options burada da uygulanır (bkz. Remarks).

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-Version'ı 13 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.
HSTS_Options.EnabledFalseStrict-Transport-Security yanıt başlığını etkinleştirir. Bkz. Remarks.
HSTS_Options.MaxAge31536000Başlığın max-age yönergesi için saniye cinsinden değer (varsayılan bir yıldır). SSL Labs, A+ derecelendirmesi için en az 15552000 (altı ay) gerektirir.
HSTS_Options.IncludeSubDomainsFalseBaşlığa includeSubDomains ekler. Yalnızca her alt alan adı HTTPS üzerinden sunuluyorsa etkinleştirin.
HSTS_Options.PreloadFalseBaşlığa preload ekler. Yalnızca tarayıcıların HSTS preload listesine gönderilen alan adları için etkinleştirin.

Remarks

SecurityOptions, WebSocket yükseltme handshake'ini denetleyen OriginsAllowed, EnforceWebSocketVersion ve ValidateWebSocketKey'in bulunduğu, TsgcWebSocketHTTPServer'a da güç veren paylaşılan sunucu motorundan değişmeden miras alınmıştır. TsgcHTTPServer hiçbir zaman bir WebSocket handshake'i gerçekleştirmez, bu nedenle bu üç kontrolün hiçbiri bu bileşende asla çalışmaz: her istek düz HTTP yolu (OnCommandGet / OnCommandOther / DocumentRoot) tarafından işlenir. Bu üç üye, paylaşılan motorla arayüz uyumluluğu için published olarak kalır; bunları varsayılan değerlerinde bırakın. Hangi istemci IP'lerinin bir HTTP uç noktasına erişebileceğini kısıtlamak için Firewall veya RateLimiter kullanın veya OnBeforeCommand içinde Origin başlığını kendiniz inceleyin.

HSTS_Options istisnadır: bu bileşende de uygulanır. RFC 6797 tarafından tanımlanan Strict-Transport-Security yanıt başlığını denetler. Enabled True olduğunda, TLS üzerinden gönderilen her yanıt, MaxAge, IncludeSubDomains ve Preload'dan oluşturulan bir Strict-Transport-Security başlığı içerir, örneğin Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Başlık asla düz HTTP üzerinden gönderilmez, uygulama yanıt üzerinde zaten bir Strict-Transport-Security başlığı ayarlamışsa atlanır ve yanıt başlıklarını uygulamanın kendisi yazdığı durumlarda (streaming) eklenmez. HSTS_Options yalnızca bu bileşende ve TsgcWebSocketHTTPServer üzerinde kullanılabilir; TsgcWebSocketServer veya http.sys sunucusu TsgcWebSocketServer_HTTPAPI üzerinde hiçbir etkisi yoktur.

Örnek

OriginsAllowed, EnforceWebSocketVersion ve ValidateWebSocketKey bütünlük için gösterilmiştir; TsgcHTTPServer üzerinde gözlemlenebilir bir etkisi yoktur. HSTS_Options.Enabled ve HSTS_Options.MaxAge gözlemlenebilir bir etkiye sahiptir: TLS üzerinden gönderilen yanıtlara Strict-Transport-Security başlığını eklerler.


oServer := TsgcHTTPServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.SecurityOptions.HSTS_Options.Enabled := true;
oServer.SecurityOptions.HSTS_Options.MaxAge := 31536000;
oServer.Active := true;

Özelliklere Dön