컨텐츠 보안 정책 (CSP) : 웹 보안에 대한 포괄적 인 안내서
CSP (Content Security Policy)는 컨텐츠 주입 공격, 주로 XSS (Cross-Site Scripting)로부터 웹 사이트를 보호하는 중요한 보안 메커니즘입니다. 이 선언적 정책을 통해 개발자는 신뢰할 수있는 자원 기원의 화이트리스트를 만들 수 있으며 브라우저가 리소스를로드하고 인라인 스타일 및 스크립트를 사용하며 동적 자바 스크립트 평가 (예 :
)를 처리하는 방법을 제어 할 수 있습니다. 이 화이트리스트 외부에서 자원을로드하려는 시도는 차단됩니다.
주요 개념 : eval()
정책은 http 헤더를 통해 구현됩니다. 지시 기반 제어 : 헤더에는 허용 도메인을 지정하고 주입 공격을 방지하기 위해 JavaScript 실행 제한을 제한하는 지시문이 포함되어 있습니다. 위반보고 : 지시문은 CSP 위반으로 생산 환경에 귀중합니다. 위반을 지정된 URL에 자세히 설명하는 JSON 보고서를 보냅니다. CSP의 작동 방식 :
W3C 후보 권장 사항 인 CSP는Content-Security-Policy
( 및 )는 인라인 data:
및 태그를 허용하고 )은 동적 코드 평가를 가능하게합니다. 둘 다 옵트 인 정책을 사용합니다. 그것들을 생략하면 제한이 시행됩니다.
브라우저 호환성 : img-src 'data:'
CSP 1.0은 광범위한 브라우저 지원을 즐깁니다. 구형 인터넷 익스플로러 버전은 호환성이 제한되어 있습니다.
unsafe-inline
script-src를 사용한 위반 모니터링 모니터링
개발은 브라우저 콘솔 로깅을 사용하는 반면, 생산 환경은 style-src
의 혜택을받습니다. 위반 세부 사항 (JSON 형식)이 포함 된 HTTP Post 요청을 지정된 URL에 보냅니다.
<script></script>
예 :
<style></style>
위반 (예 : 에서로드)은 unsafe-eval
로 전송 된 JSON 보고서를 생성합니다.
script-src
헤더 :
테스트의 경우 를 사용하십시오. 이는 자원을 차단하지 않고 위반을보고하여 현장 중단없이 정책 개선을 허용합니다. 두 헤더 모두 동시에 사용할 수 있습니다 CSP 구현 : CSP는 HTTP 헤더를 통해 설정됩니다. 서버 구성 (APACHE, IIS, NGINX) 또는 프로그래밍 방식 (php 's , node.js's )을 사용할 수 있습니다.
실제 예제 :Facebook과 Twitter는 와일드 카드 및 특정 도메인 수당을 활용하여 다양한 CSP 구현을 보여줍니다. CSP 레벨 2 향상 :
CSP Level 2는 새로운 지시문 (,, , , report-uri
), 개선 된보고 및 인라인 스크립트 및 스타일에 대한 Nonce/HASH 기반 보호를 소개합니다.
report-uri
결론 :
(참고 : 이미지 자리 표시자는 요청에 따라 변경되지 않았습니다.)
위 내용은 컨텐츠 보안 정책을 통한 웹 보안 개선의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!