Tag: content security policy

在外部JavaScript文件中插入动态值的安全方法

我正在使用以下策略实现内容安全策略标头 Content-Security-Policy: default-src ‘self’ 所以需要避免内联脚本,因为它不会执行。 但是,在MVC应用程序中,某些function(如编辑器模板)使用内联脚本。 例如tinymce_jquery_full.cshtml包含 $(function() { $(‘#@ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)’).tinymce({ … 使用CSP时,在外部.js文件中包含动态值的好方法是什么? 我目前的想法是两种方式之一: C#生成的JavaScript 类似于JSONP的工作方式,除了在URL中我没有指定回调 – 我只是传递动态值。 在每个需要动态JavaScript的文件中,我都包含一个链接,例如 它命中ScriptController的Foo动作,它返回插入动态值bar text/javascript类型的内容。 这对我来说是一种可靠的方式,如果有点笨拙,它首先会破坏使用CSP的一些优点(几乎很容易意外地插入未编码的文本并导致XSS,因为它没有CSP)。 隐藏的表单字段 动态值将插入页面: 并在外部JavaScript文件中查找这些值: $(‘#url’).val(); 这将有效,但如果页面上有多个动态控件或者有多个相同类型的控件,则可能会很麻烦。 问题是如何有效地将每个.js脚本与其隐藏字段匹配。 有没有更好的解决方案,还是有任何我可以使用的现成框架?