콘텐츠 보안 정책(CSP)의 작동 방식
지금까지 접한 수많은 CSP 관련 오류에 대한 대응으로 이 문서에서는 콘텐츠 보안 정책의 작동 원리를 설명하고 이를 효과적으로 활용하기 위한 실질적인 지침을 제공합니다.
What CSP인가요?
CSP(콘텐츠 보안 정책)는 XSS(교차 사이트 스크립팅 공격)의 위험을 완화하도록 설계된 브라우저 측 보안 기능 역할을 합니다. 이 정책을 사용하면 스크립트, 스타일시트, 이미지와 같은 리소스를 로드하기 위한 승인된 소스를 정의하여 브라우저가 승인되지 않은 위치에서 데이터를 검색하는 것을 방지할 수 있습니다.
콘텐츠 보안 정책 HTTP 헤더 활용
웹사이트에 CSP를 구현하려면 다음을 포함하는 Content-Security-Policy HTTP 헤더를 활용할 수 있습니다. 정책의 매개변수를 구성하는 메타태그입니다. 이 메타 태그에는 정책 지침과 소스 권한 부여 규칙을 정의하는 콘텐츠 속성이 포함되어 있습니다.
질의 사항 해결
제기한 질문을 자세히 살펴보겠습니다.
1. 여러 소스:
여러 소스의 리소스를 허용하려면 지시어 뒤에 공백으로 구분된 값으로 나열하면 됩니다.
content="default-src 'self' https://example.com/js/"
2. 다양한 지시어:
일반적인 지시어는 다음과 같습니다.
3. 여러 지시어:
세미콜론을 구분 기호로 사용하여 단일 메타 태그 내에서 지시어를 결합합니다.
content="default-src 'self' https://example.com/js/; style-src 'self'"
4. 포트 처리:
포트 번호나 별표를 추가하여 기본값 이외의 포트를 명시적으로 인증합니다.
content="default-src 'self' https://ajax.googleapis.com http://example.com:123/free/stuff/"
5. 프로토콜 처리:
기본값이 아닌 프로토콜을 명시적으로 허용:
content="default-src 'self'; connect-src ws:; style-src 'self'"
6. file:// 프로토콜:
filesystem 매개변수를 사용하여 file:// 프로토콜을 허용합니다:
content="default-src filesystem"
7. 인라인 스타일 및 스크립트:
인라인 스타일, 스크립트, 태그를 활성화하려면 'unsafe-inline' 매개변수를 사용하세요:
content="script-src 'unsafe-inline'; style-src 'unsafe-inline'"
8. eval() 호출:
'unsafe-eval' 매개변수를 활용하여 eval()을 허용합니다:
content="script-src 'unsafe-eval'"
9. 'self' 해석:
'self'는 콘텐츠 정책이 정의된 파일과 동일한 프로토콜, 호스트, 포트를 공유하는 리소스를 나타냅니다.
content="default-src https://example.com"
참고하세요 'self'는 http나 로컬 파일과 같은 안전하지 않은 프로토콜을 허용하지 않습니다.
추가 팁:
위 내용은 CSP(콘텐츠 보안 정책)는 XSS(교차 사이트 스크립팅 공격)로부터 어떻게 보호합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!