2017-03-25 5 views
2

아래의 코드 조각은 http : //www.google.com/support/bin/answer.py?hl=ko&hl=ko
을 실행하는 모든 브라우저에서 정상적으로 작동합니다.하지만 Safari에서 https를 사용하여 실행하면 이것이 작동하지 않습니다.
이와 크롬에서 잘 작동 모두 HTTP & https를 ...이 같은데요Safari의 안전한 샌드 박스 iframe에 blob을 읽으시겠습니까?

<iframe sandbox="allow-scripts" srcdoc=" 
    <script> 
    var blob = new Blob(['abc']); 
    var fr = new FileReader(); 
    fr.readAsText(blob); 
    fr.onerror =() => document.body.innerText = 'fail' 
    fr.onload =() => document.body.innerText = fr.result 
    </script> 
"></iframe> 

오른쪽 CSP 컨텍스트

I 해결할 수있는 샌드 박스 제한 오히려 content security policy 일이 아니다 '... 그래서 난 헤더 그것을 해결할 수 있지만 메타 태그는 잘 또한 작동하는 정적 페이지에 호스팅 그래서 여기

<meta http-equiv='Content-Security-Policy' content=' <duno> '> 

을 해요 나의 질문 : 나는 순서대로 사용할 필요가 무엇 CSP 에 iframe에서 얼룩을 읽을 수 있습니까?

나는 또한 당신이 이미 다른 곳에서 적용되는 CSP 정책에 의해 생성 된 어떤 것보다 더 자유주의 정책을 만들기 위해 CSP 지시어를 사용하지 않을 수 있다고 생각이

답변

2

에 대한 fiddle를 만들 않았다. 예를 들어, 문서에서 meta을 사용하여 지정된보다 자유로운 정책으로보다 엄격한 CSP 헤더를 재정의 할 수 없습니다.

the stuff about multiple policies in the CSP spec를 참조하십시오

영향은 정책 목록에 추가 정책을 추가하는 것은 단지 더 보호 자원의 기능을 제한 할 수 있습니다 적용 할 수 있다는 것입니다. CSP는 전혀이 Blob -와 - iframe이 샌드 박스 - 수 - 스크립트의 경우에도 관련 정도에 따라서

당신은에 의해 자체에 제한 CSP 정책을 적용 브라우저로 고려한다면 기본적으로 CSP 헤더 또는 meta 요소를 사용하여 제한을 완화 할 수 있다고 생각하지 않습니다. 대신 머리글 또는 meta 요소 만 사용하여 추가 제한을 적용 할 수 있습니다.

어쨌든, 당신이 어떤 대답을 보러 관심이 https://bugs.webkit.org/show_bug.cgi?id=170075에 도착.

+0

답변을 주셔서 감사합니다 - 유용한 정보가 있지만 FileReader 문제를 해결하지 않아서 +1을드립니다. 이제 base64, text 및 arraybuffers를 사용하여 물건을 얻는 데 어려움을 겪었습니다. 내 버그 보고서를 발견 한 것을보고 행복하게 느껴질 것입니다. :) – Endless

+0

건배 - 사파리가 여기에서하고있는 것을 지원하는 사양 요구 사항을 찾을 수 없습니다. , 그래서 당신이 그 버그를 조사해서 해결하거나 적어도 그들이 그것을하고있는 이유를 설명하는 것은 좋은 일이라고 생각합니다. – sideshowbarker