콘텐츠 보안 정책(CSP)이란 무엇이며 어떻게 작동합니까?

Patricia Arquette
풀어 주다: 2024-11-13 07:09:02
원래의
221명이 탐색했습니다.

 What Is Content Security Policy (CSP) and How Does It Work?

콘텐츠 보안 정책(CSP) 이해

소개

콘텐츠 보안 정책 (CSP)는 웹 개발자가 리소스를 로드할 수 있는 소스를 지정할 수 있는 강력한 보안 메커니즘입니다. 그들의 웹사이트에서. CSP는 리소스 출처를 제한함으로써 XSS(교차 사이트 스크립팅) 및 데이터 유출과 같은 다양한 공격으로부터 보호하는 데 도움이 됩니다.

CSP 작동 방식

CSP는 웹 페이지의 HTML 헤더에 있는 메타 태그를 통해 구현됩니다. 이 메타 태그의 내용에는 리소스 로드에 허용되는 소스를 정의하는 지시어가 포함되어 있습니다. 이러한 지시문은 일반적으로 다음을 지정합니다.

  • 소스 원본: 리소스를 로드할 수 있는 도메인 또는 호스트.
  • 프로토콜: 리소스 로드에 허용되는 네트워크 프로토콜(예: HTTP 또는 HTTPS).
  • 포트: 리소스 로딩에 허용되는 포트 번호.
  • 리소스 유형: 특정 리소스 스크립트, 스타일시트, 이미지 또는 AJAX 요청과 같은 유형.

Content-Security-Policy 헤더 사용

Content의 기본 구문- 보안 정책 HTTP 헤더는 다음과 같습니다. 다음:

<meta http-equiv="Content-Security-Policy" content="directives">
로그인 후 복사

구체적인 질문에 대한 답변

1. 여러 소스 허용:

여러 소스를 허용하려면 콘텐츠 속성에서 공백으로 구분하면 됩니다.

content="default-src 'self' https://example.com/js/"
로그인 후 복사

2. 다른 지시어 사용:

각 지시어는 특정 리소스 유형을 지정합니다. 일반적인 지시문은 다음과 같습니다.

  • default-src: 모든 리소스에 대한 기본 정책
  • script-src: JavaScript 파일의 유효한 소스
  • style-src: 다음에 대한 유효한 소스 CSS 파일
  • img-src: 유효한 소스 이미지

3. 여러 지시어 사용:

여러 지시어는 세미콜론(;)으로 구분하여 사용할 수 있습니다.

content="default-src 'self'; style-src 'self'"
로그인 후 복사

4. 포트 처리:

포트는 명시적으로 허용되어야 합니다:

content="default-src 'self' https://example.com:123/"
로그인 후 복사

5. 다양한 프로토콜 처리:

HTTP/HTTPS 이외의 프로토콜은 명시적으로 허용되어야 합니다:

content="connect-src ws:;"
로그인 후 복사

6. 파일 프로토콜 허용:

file:// 프로토콜을 허용하려면 파일 시스템 매개변수를 사용해야 합니다:

content="default-src filesystem"
로그인 후 복사

7. 인라인 스타일 및 스크립트 허용:

인라인 콘텐츠를 허용하려면 unsafe-inline을 사용하세요.

content="script-src 'unsafe-inline'; style-src 'unsafe-inline'"
로그인 후 복사

8. eval() 허용:

eval()을 허용하려면 unsafe-eval:

content="script-src 'unsafe-eval'"
로그인 후 복사

9을 사용하세요. 'self'의 의미:

'self'는 CSP 정책이 정의된 페이지와 동일한 스키마, 호스트, 포트에서 발생하는 리소스를 의미합니다.

결론

CSP는 로드되는 리소스의 소스를 제한하여 웹사이트를 취약점으로부터 보호할 수 있는 강력한 보안 조치입니다. 웹 애플리케이션의 무결성과 보안을 보장하려면 CSP 정책을 주의 깊게 이해하고 구현하는 것이 필수적입니다.

위 내용은 콘텐츠 보안 정책(CSP)이란 무엇이며 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿