웹 소켓 연결에 실패한 후 콘텐츠를 추가보안 정책에 nginx

0

질문

를 추가하려면 새로운 헤더 내용의 보안 정책을 내 nginx conf 파일을 향상시키기 위해 보안이다. 추가했는 모든 외부 원본 및 모든 작동을 제외한 더 할 수있는 infobip. 사용 wss 프로토콜을 어떤 이유에 대 찾을 수 없습니다 올바른 방법을 구성합니다.

이 오류는 이유입니다.

이것은 나 헤더에서 nginx.conf

add_header'콘텐츠 보안 정책'"기본 src'자신''안전 인라인'wss:wss://.infobip.com ws://.infobip.com .infobip.com http://www.w3.org https://fonts.googleapis.com https://stackpath.bootstrapcdn.com .youtube.com https://cdn.jsdelivr.net/; img src'self'데이터 https://.openstreetmap.org wss://livechat-fr.infobip.com/채팅/web/proxy/827/toxgylwd/websocket 항상 연결-src'self'wss:ws:wss://.infobip.com ws://*.infobip.com .infobip.com https://.doubleclick.net wss://livechat-fr.infobip.com/채팅/web/proxy/492/hybzmnjl/websocket'안전 인라인'항상;";

나는 여러 가지 방법을 시도했다고 할 수 있는 websocket 연결지만 아무도 작동하는 것 같다.

2
0

이후로 모든 웹 소켓 연결에 의해 시작한 일반적인 http 요청해야 합니다 추가 CSP 한 https://your-websocket-server-domain:port

Http 요청과 대답 101: swtiching protocols 다음 연결 될 것입니다 WebSocket 연결합니다.

참고는 생각하지 않는 ws:나 wss:csp 지시어가 필요하다.

2021-11-20 14:15:38
0

당신은 3 가지 문제점:

  1. 콘솔에 오류에 당신은 다음과 같은 CSP 와 관련이 있습니다. "403Forbidden"의 당신은에 액세스하지 않는 관련된 Url. "'X-프레임 옵션'이하'deny'"의 뜻을 포함하려고 하 iframe 하지만 그 페이지에 허용하지 않을 통해 내장 X-Frame-Options: "DENY" HTTP 헤더가 있습니다.

  2. 잘못된 형식의 Nginx add_header. 그것처럼 보인(주목을 따옴표 always 키워드 배치해야의 CSP 설정):

    add_header Content-Security-Policy "default-src 'self'..." always;

  3. 잘못된 형식의 CSP 스트-소스입니다. 호스트 소스를 같이 .youtube.com 포함되지 않아야 합니다 주요 . 점:
    youtube.com 허용에서 자원을 로드하 는 http(s)://youtube.com*.youtube.com 이 허용원에서의 하위 도메인 youtube.com.

그래서 당신의 통상적으로 올바른 CSP 해야처럼 보인:

add_header Content-Security-Policy "\
default-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com\
https://fonts.googleapis.com infobip.com ws://infobip.com wss://infobip.com youtube.com\
https://cdn.jsdelivr.net http://www.w3.org;\
connect-src 'self' infobip.com wss://infobip.com ws://*.infobip.com\
wss://livechat-fr.infobip.com/chat/web/proxy/ https://doubleclick.net;\
img-src 'self' data: https://openstreetmap.org;\
" always;

Note:

  • wss://livechat-fr.infobip.com/채팅/web/proxy/492/hybzmnjl/websocket -을 포함하지 않 대담한 경로-부분을 CSP 기 때문에,그것은 변경되었습니다.
  • 계획-원 wss: 모든 호스트 소스와 함께하는 방식(예를 들어 wss://사이트입니다.com/websocket). 그래서 나는 삭제 계획-소스와 왼쪽의 호스트 소스.
  • 일부를 삭제하는 지원되지 않는 소스에 대한 인스턴스 'unsafe-inline'connect-src.
  • Nginx 지원해야 하는 백슬래 \ 으로 줄바꿈,그래서 나는 그것을 사용하기 때문에 그것을 유지하기 위해 열심히 CSP 니다. 하지 확인 Nginx 버전을 지원하는 이 기능이 있습니다.

참고 2: 이 CSP 일부를 차단할 수 있 소스에 추가하기만 하면 해당 지시어.

3 주: 이동 소스에서 default-src 지시어를 script-src + style-src + font-src 시오. 기 때문에 지금은 당신이 실제로 허용 'unsafe-inline'scrit-src 그래서 당신의 CSP 으로부터 보호되지 않습니다 XSS. 그것은 또한 어렵게 관리 CSP 에서 미래기 때문에,원본은 혼합 중 하나에서 지시문입니다.

2021-11-28 23:35:39

감사합니다,그러나 불행하게도 나는 여전히 같은 오류가-WebSocket 연결하...지 못했습니다. 나도:를 거부하는 표시'livechat-fr.infobip.com'프레임에서 때문에 그것을 설정'X-프레임 옵션'이하'deny'. 이것은 어떻게 설정한 헤더 add_header'X-프레임 옵션'"SAMEORIGIN 항상";
Baseplate

당신이 설정 X-Frame-Options "SAMEORIGIN" 에서 당신의 서버나 livechat-fr.infobip.com 차단지가 제공하는 서버입니다. 그 livechat-fr.infobip.com 게시 X-Frame-Options "DENY" 헤더를 방지함. 구성할 수 있습 뭔가 잘못에 infobip.com 계정입니다.
granty

문제는 해결됩니다. CSP 지시어로 작동합니다. 그것은 밝혀졌다는 기업 네트워크 트래픽을 차단하 infobip 과에 대해 알게 되었다. 다시 한번 감사드 대한 귀하의 노력은 여전히 도로 설정 지시어 힘든 것입니다.
Baseplate

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................