TsgcWebSocketServer_HTTPAPIPropiedades › SecurityOptions

SecurityOptions Propiedad

Define reglas de admisión del handshake: orígenes permitidos y validación de handshake RFC 6455.

Sintaxis

property SecurityOptions: TsgcWSSecurity_Options read FSecurityOptions write SetSecurityOptions;

Miembros

NombreObservacionesDescripción
OriginsAllowed""TsgcWebSocketHTTPServer.SecurityOptions
EnforceWebSocketVersionTrueRechaza un handshake RFC 6455 cuyo Sec-WebSocket-Version no sea 13.
ValidateWebSocketKeyTrueRechaza un handshake RFC 6455 cuyo Sec-WebSocket-Key no sea un nonce base64 válido de 16 bytes.

Observaciones

Use OriginsAllowed para restringir los orígenes desde los que el servidor acepta handshakes de WebSocket. Por defecto se permiten todos los orígenes; cualquier valor no vacío activa una lista de permitidos y el servidor cierra las conexiones cuyo encabezado Origin no coincida. Los patrones aceptan comodines para el puerto (por ejemplo, http://127.0.0.1:5555 para un único origen o http://127.0.0.1:* para aceptar cualquier puerto en ese host). Separe múltiples orígenes con comas. Establecer OriginsAllowed en una cadena vacía restaura el comportamiento permisivo predeterminado.

EnforceWebSocketVersion y ValidateWebSocketKey refuerzan el propio upgrade de WebSocket y están habilitados por defecto. Cuando EnforceWebSocketVersion está activo, el servidor responde a un handshake que solicita una versión distinta de 13 con HTTP 426 Upgrade Required y un encabezado Sec-WebSocket-Version: 13, en lugar de completar el upgrade. Cuando ValidateWebSocketKey está activo, el servidor rechaza con HTTP 400 Bad Request cualquier handshake cuyo Sec-WebSocket-Key falte o no sea un valor base64 de 24 caracteres que decodifique a 16 bytes, como exige RFC 6455. Ambas comprobaciones se aplican solo a la ruta RFC 6455, por lo que los clientes Hixie76 antiguos no se ven afectados. Establezca cualquiera de las dos en False solo si necesita interoperar con un cliente no conforme.

Las mismas opciones están disponibles en TsgcWebSocketServer y TsgcWebSocketHTTPServer. Para limitar el tamaño de los mensajes entrantes, consulte MaxMessageSize.

Ejemplo


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

Volver a Propiedades