首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当启用CSP时,Kendo小部件无法工作。

当启用CSP时,Kendo小部件无法工作。
EN

Stack Overflow用户
提问于 2017-03-14 16:30:30
回答 2查看 898关注 0票数 2

我有ASP.NET核心应用程序,我正在使用Telerik的UI为ASP.NET核心框架的某些小部件,如日期,DropDownList,图表等。

应用程序正在从自己的服务器上加载所有javascripts、图像、css。因此,我启用了CSP策略如下

代码语言:javascript
运行
复制
script-src 'self' 'unsafe-eval';   
style-src 'self' 'unsafe-inline';    
img-src 'self' data:;    
font-src 'self';    
media-src 'none';    
object-src 'none';   
child-src https://xxxx.yyyy.com;   
report-uri http://myapplication/csp/report;

但是,当页面加载时,我在chrome的控制台中看到了错误

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:" script -src 'self‘’不安全-eval‘“。要么是‘不安全-内联’关键字,要么是散列('sha256-oii70XYoqukWS9204nbwatxgYOYcr06+rftc4egdfUk='),,要么是“不安全-.”)需要启用内联执行。

对于我在该页面上使用的几个Kendo小部件,会重复此错误。例如,日期小部件。在cshtml中,我已经将日期配置如下

代码语言:javascript
运行
复制
@(Html.Kendo().DatePicker()
.Name("sbDate")
.HtmlAttributes(new { @class = "mydate" }))

它在html中呈现为

代码语言:javascript
运行
复制
<input class="mydate" id="sbDate" name="sbDate" type="date" value="" /><script>jQuery(function(){jQuery("#sbDate").kendoDatePicker({"format":"M/d/yyyy","footer":false});});</script>

我已经通过了Telerik对CSP的建议这里这里。根据这个建议,我只需要添加unsafe-eval才能让小部件正常工作。然而,这似乎不是真的。我还必须添加unsafe-inline才能让小部件正常工作。

但是,启用CSP的全部目的是不允许内联脚本。

问题

有没有办法解决这个问题?

更新1

小部件只在IE11中工作,而不添加unsafe-inline。在chrome和IE中,边缘部件需要unsafe-inline才能工作。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42791493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档