TsgcWebSocketServer_HTTPAPI속성 › SecurityOptions

SecurityOptions 속성

핸드셰이크 허용 규칙을 정의합니다. 즉, 허용된 오리진과 RFC 6455 핸드셰이크 검증입니다.

구문

__property TsgcWSSecurity_Options * SecurityOptions;

멤버

Name기본값설명
OriginsAllowed""브라우저 WebSocket 핸드셰이크에 허용되는 오리진의 쉼표로 구분된 화이트리스트. 비어 있으면 모든 오리진을 허용합니다.
EnforceWebSocketVersionTrueSec-WebSocket-Version13이 아닌 RFC 6455 핸드셰이크를 거부합니다.
ValidateWebSocketKeyTrueSec-WebSocket-Key가 유효한 16바이트 base64 논스가 아닌 RFC 6455 핸드셰이크를 거부합니다.

설명

서버가 WebSocket 핸드셰이크를 수락하는 오리진을 제한하려면 OriginsAllowed를 사용하십시오. 기본적으로 모든 오리진이 허용됩니다. 비어 있지 않은 값은 화이트리스트를 활성화하며, 서버는 Origin 헤더가 일치하지 않는 연결을 닫습니다. 패턴은 포트에 와일드카드를 허용합니다(예: 단일 오리진의 경우 http://127.0.0.1:5555 또는 해당 호스트의 모든 포트를 수락하는 경우 http://127.0.0.1:*). 여러 오리진은 쉼표로 구분하십시오. OriginsAllowed를 빈 문자열로 설정하면 허용적인 기본값으로 복원됩니다.

EnforceWebSocketVersionValidateWebSocketKey는 WebSocket 업그레이드 자체를 강화하며 기본적으로 활성화되어 있습니다. EnforceWebSocketVersion이 활성화되어 있으면 서버는 13 이외의 버전을 요청하는 핸드셰이크에 대해 업그레이드를 완료하는 대신 HTTP 426 Upgrade RequiredSec-WebSocket-Version: 13 헤더로 응답합니다. ValidateWebSocketKey가 활성화되어 있으면 서버는 RFC 6455에서 요구하는 대로 Sec-WebSocket-Key가 누락되었거나 16바이트로 디코딩되는 24자 base64 값이 아닌 핸드셰이크를 HTTP 400 Bad Request로 거부합니다. 두 검사는 모두 RFC 6455 경로에만 적용되므로 레거시 Hixie76 클라이언트는 영향을 받지 않습니다. 비준수 클라이언트와 상호 운용해야 하는 경우에만 둘 중 하나를 False로 설정하십시오.

동일한 옵션을 TsgcWebSocketServerTsgcWebSocketHTTPServer에서 사용할 수 있습니다. 인바운드 메시지의 크기를 제한하려면 MaxMessageSize를 참조하십시오.

예제


oServer = new TsgcWebSocketServer_HTTPAPI(NULL);
oServer->SecurityOptions->OriginsAllowed = "http://127.0.0.1:*";
oServer->SecurityOptions->EnforceWebSocketVersion = true;
oServer->SecurityOptions->ValidateWebSocketKey = true;
oServer->Active = true;

속성으로 돌아가기