0

我们目前正在向网站推出内容安全策略。首先插入Content-Security-Policy-Report-Only表头以获得关于影响的一些反馈。很快我们发现Safari浏览器中的Evernote Web Clipper插件违反了CSP指令,因为它似乎向页面中注入了一些代码。Evernote Web Clipper和内容安全策略

我们在CSP报告得到这样的:

{"csp-report": 
    { 
     "document-uri":"http://example.com/index.html", 
     "violated-directive":"default-src 'self'", 
     "original-policy":"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; report-uri http://example.com/report.html", 
     "blocked-uri":"safari-extension://com.evernote.safari.clipper-uahs7eh2ja", 
     "source-file":"http://example.com/js/jquery.js", 
     "line-number":2 
    } 
} 

我们如何需要修改CSP头让Evernote Web Clipper可插件不会被阻止? blocked-uri似乎在最后包含一个用户特定的ID,这使得它非常困难。

回答

0

说得没错,被阻止的uri的最后一位在不同的计算机上有所不同,并且不能使用通配符将其列入白名单。解除阻止Web Clipper的唯一方法是通过将safari-extension://*置于default-src来解除对所有Safari扩展的阻止,因此您的策略看起来像

 
default-src 'self' safari-extension://*; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; report-uri http://example.com/report.html