TsgcWebSocketHTTPServerProprietà › SecurityOptions

SecurityOptions Proprietà

Definisce le regole di ammissione dell'handshake: origini consentite e convalida dell'handshake RFC 6455.

Sintassi

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Membri

NomePredefinitoDescrizione
OriginsAllowed""Whitelist separata da virgole delle origini accettate per gli handshake WebSocket del browser. Se vuota, consente tutte le origini.
EnforceWebSocketVersionTrueRifiuta un handshake RFC 6455 la cui Sec-WebSocket-Version non è 13.
ValidateWebSocketKeyTrueRifiuta un handshake RFC 6455 la cui Sec-WebSocket-Key non è un nonce base64 valido di 16 byte.

Note

Utilizzare OriginsAllowed per limitare le origini da cui il server accetta gli handshake WebSocket. Per impostazione predefinita tutte le origini sono consentite; qualsiasi valore non vuoto abilita una whitelist e il server chiude le connessioni la cui intestazione Origin non corrisponde. I pattern accettano caratteri jolly per la porta (ad esempio http://127.0.0.1:5555 per una singola origine o http://127.0.0.1:* per accettare qualsiasi porta su quell'host). Separare più origini con virgole. Impostare OriginsAllowed su una stringa vuota ripristina il comportamento permissivo predefinito.

EnforceWebSocketVersion e ValidateWebSocketKey rafforzano l'upgrade WebSocket stesso e sono abilitati per impostazione predefinita. Quando EnforceWebSocketVersion è attivo, il server risponde a un handshake che richiede una versione diversa da 13 con HTTP 426 Upgrade Required e un'intestazione Sec-WebSocket-Version: 13, invece di completare l'upgrade. Quando ValidateWebSocketKey è attivo, il server rifiuta con HTTP 400 Bad Request qualsiasi handshake la cui Sec-WebSocket-Key sia mancante o non sia un valore base64 di 24 caratteri che si decodifica in 16 byte, come richiesto da RFC 6455. Entrambi i controlli si applicano solo al percorso RFC 6455, quindi i client Hixie76 legacy non ne sono interessati. Impostare uno dei due su False solo se è necessario interoperare con un client non conforme.

Le stesse opzioni sono disponibili su TsgcWebSocketServer e sul server http.sys TsgcWebSocketServer_HTTPAPI. Per limitare la dimensione dei messaggi in ingresso vedere MaxMessageSize.

Esempio


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.SecurityOptions.OriginsAllowed := 'http://127.0.0.1:*';
oServer.SecurityOptions.EnforceWebSocketVersion := true;
oServer.SecurityOptions.ValidateWebSocketKey := true;
oServer.Active := true;

Torna alle Proprietà