HTML5의 콘텐츠 보안 정책(CSP)
머리말:
Cordova不支持内联事件,所以点击事件必须提取到js里面. 以下是从官网摘抄下来,希望对您有所帮助
많은 잠재적인 교차 사이트 스크립팅 문제를 완화하기 위해 Chrome의 확장 시스템에는 CSP(콘텐츠 보안 정책)의 일반적인 개념이 통합되었습니다. 이는 기본적으로 확장 프로그램을 더욱 안전하게 만들고 확장 프로그램과 애플리케이션에 의해 로드되고 실행될 수 있는 콘텐츠 유형을 제어하는 규칙을 생성하고 시행할 수 있는 기능을 제공하는 상당히 엄격한 정책을 도입합니다.
일반적으로 CSP는 확장 프로그램이 로드하거나 실행하는 리소스에 대한 해킹/화이트리스트 메커니즘 역할을 합니다. 확장 프로그램에 대한 합리적인 정책을 정의함으로써 확장 프로그램에 필요한 리소스를 신중하게 고려하고 브라우저에 확장 프로그램이 액세스할 수 있는 유일한 리소스인지 확인하도록 요청할 수 있습니다. 이러한 정책은 확장 프로그램에서 요청한 호스트 권한 이상의 보안을 제공하며 대체가 아닌 추가 보호 계층입니다.
웹에서는 이러한 정책이 HTTP 헤더나 요소를 통해 정의됩니다. Chrome 확장 시스템에도 적합한 메커니즘이 아닙니다. 대신 확장 프로그램의 정책은 다음과 같은 확장 프로그램의 매니페스트.json 파일을 통해 정의됩니다.
{ … “content_security_policy”:“[POLICY STRING GOES HERE]” … }
CSP 구문에 대한 자세한 내용은 콘텐츠 보안 정책 사양 및 HTML5 Rocks의 "콘텐츠 보안 정책 소개" 문서를 참조하세요.
기본 정책 제한 사항
manifest_version 패키지가 정의되지 않았습니다. 기본 콘텐츠 보안 정책이 없습니다. 매니페스트 버전 2를 선택하는 경우 기본 콘텐츠 보안 정책이 있습니다:
script-src'self'; object-src'self'
이 정책은 세 가지 방법으로 확장 프로그램과 애플리케이션을 제한하여 보안을 강화합니다.
(1) 평가 및 관련 기능이 비활성화됩니다.
다음 코드는 작동하지 않습니다.
alert(eval("foo.bar.baz")))
window.setTimeout(“alert(’hi’)”,10); window.setInterval(“alert(’hi’)”,10); new Function(“return foo.bar.baz”);
이와 같은 JavaScript 문자열을 평가하는 것은 일반적인 XSS 공격 벡터입니다. 대신 다음과 같은 코드를 작성해야 합니다:
alert(foo && foo.bar && foo.bar.baz); window.setTimeout(function(){alert(’hi’);},10); window.setInterval(function(){alert(’hi’);},10); function(){return foo && foo.bar && foo.bar.baz};
(2) 인라인 JavaScript가 실행되지 않습니다
인라인 JavaScript가 실행되지 않습니다. 이 제한은 인라인 블록과 인라인 이벤트 핸들러 프로그램(예: )을 금지합니다.
첫 번째 제한은 악의적인 제3자가 제공한 스크립트를 실수로 실행하는 것을 방지하여 수많은 교차 사이트 스크립팅 공격을 제거합니다. 하지만 코드를 작성하는 것과 코드가 수행하는 작업을 명확하게 구분해야 합니다. (반드시 수행해야 함) 그렇죠? 예를 들어 보면 이를 더 명확하게 알 수 있습니다. 다음을 포함하는 단일 popup.html로 브라우저 작업 팝업을 작성해 볼 수 있습니다.
<!doctype html> My Awesome Popup! function awesome(){ //做某事真棒! } function totalAwesome(){ //做某事真棒! } 函数clickHandler(element){ setTimeout( “awesome();getherAwesome()” ,1000); } function main(){ //初始化工作在这里。 } </ SCRIPT>
(1) 인라인 스크립트
Chrome 45까지는 인라인 JavaScript 실행에 대한 제한을 완화하는 메커니즘이 없었습니다. 특히 'unsafe-inline'이 포함된 스크립트 정책을 설정하면 아무런 효과가 없습니다. Chrome 46부터 정책에 소스 코드의 base64 인코딩 해시를 지정하여 인라인 스크립트를 화이트리스트에 추가할 수 있습니다. 해시 앞에는 사용된 해싱 알고리즘(sha256, sha384 또는 sha512)이 추가되어야 합니다.예시 정보
위 내용은 HTML5의 콘텐츠 보안 정책(CSP)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML의 테이블 테두리 안내. 여기에서는 HTML의 테이블 테두리 예제를 사용하여 테이블 테두리를 정의하는 여러 가지 방법을 논의합니다.

HTML의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

HTML 여백-왼쪽 안내. 여기에서는 HTML margin-left에 대한 간략한 개요와 코드 구현과 함께 예제를 논의합니다.

HTML 테이블 레이아웃 안내. 여기에서는 HTML 테이블 레이아웃의 값에 대해 예제 및 출력 n 세부 사항과 함께 논의합니다.

HTML 입력 자리 표시자 안내. 여기서는 코드 및 출력과 함께 HTML 입력 자리 표시자의 예를 논의합니다.

HTML에서 텍스트 이동 안내. 여기서는 Marquee 태그가 구문과 함께 작동하는 방식과 구현할 예제에 대해 소개합니다.

HTML 순서 목록에 대한 안내입니다. 여기서는 HTML Ordered 목록 및 유형에 대한 소개와 각각의 예에 대해서도 설명합니다.

HTML onclick 버튼에 대한 안내입니다. 여기에서는 각각의 소개, 작업, 예제 및 다양한 이벤트의 onclick 이벤트에 대해 설명합니다.
