ASP.NET Ajax 控制工具包 - 内容安全策略

问题描述 投票:0回答:1

我有一个内部网络应用程序。这是一个 webforms .net 4.x 应用程序。它使用 ajax 控制工具包以及 updatepanel。具体来说,它大量使用 tabcontainer/tabpanels。在打开 csp 之前,我无法让 tabcontainer/tabpanels 正常工作。我这样做了好几年了。我的 web.config 文件中有一个内容安全策略设置:

<add name="Content-Security-Policy" value="style-src 'self' 'unsafe-inline' 'unsafe-eval'; script-src 'self' 'unsafe-inline' 'unsafe-eval'" />

此 csp 允许一切正常工作。现在,我有两个问题:

  • 安全人员已将当前的 csp 列为低风险安全问题,并希望我对其进行更改。这是低风险的,但如果可能的话,我想提供某种类型的解决方案。我读过几篇关于让 ACT 与 CSP 正确配合有多么困难的文章,所以这可能是不可能的。我尝试创建一个 ACT 捆绑包并将其发送下来,但我在 Chrome 检查器中收到一条错误消息,指出这是 404 iirc。一切正常,但我不喜欢 404 错误。在脚本管理器中删除捆绑包似乎有效,并且不会产生任何其他错误。有没有其他人注意到 google chrome 检查脚本管理器中的 ACT 捆绑包时出现 404 错误?
  • 我最近不得不添加两个选项卡。这两个选项卡有一个 iframe,显示来自另一个内部网站的内容。为了让它在选项卡下工作,我必须实际删除 csp。我认为他们不会喜欢删除的 csp。

我尝试使用 csp 从 google 加载一些测试内容。不幸的是,以下 csp 不起作用。我认为它会从当前的本地服务器和谷歌站点加载。不幸的是,来自 google.com 的内容无法加载。 Chrome 在加载时给了我一张不高兴的脸。对于如何仅从本地服务器和单个远程服务器加载内容的建议,我们表示赞赏。

<add name="Content-Security-Policy" value="frame-src 'self' *.google.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' *.google.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google.com" />

那么,问题(感谢 pkalkins),如何添加包含来自另一个内部站点的内容的 iframe 的功能,以便 iframe 正确显示该 iframe 中的内容?我使用 google.com 网站作为示例,在我的远程系统上进行测试。

预先感谢您的任何想法或建议。 :-)

沃利

asp.net webforms ajaxcontroltoolkit content-security-policy
1个回答
0
投票

如果其他人在锁定 Ajax Control Toolkit 时遇到问题,您可以调整 ASP ScriptManager 控件中的设置来影响更改。

1.) 您可以为 ScriptMode 属性选择“release”,默认设置为 AUTO,这可能会在调试模式下运行您的脚本,具体取决于您的零售模式设置。

https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.scriptmanager.scriptmode?view=netframework-4.8.1

2.) 将 AjaxFrameworkMode 属性设置为显式,以便您仅使用所需的 Ajax 函数。

https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.scriptmanager.ajaxframeworkmode?view=netframework-4.8.1

这对我有用,我希望它可以帮助您消除使用“unsafe-eval”的需要

© www.soinside.com 2019 - 2024. All rights reserved.