我有一个内部网络应用程序。这是一个 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 从 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 网站作为示例,在我的远程系统上进行测试。
预先感谢您的任何想法或建议。 :-)
沃利
如果其他人在锁定 Ajax Control Toolkit 时遇到问题,您可以调整 ASP ScriptManager 控件中的设置来影响更改。
1.) 您可以为 ScriptMode 属性选择“release”,默认设置为 AUTO,这可能会在调试模式下运行您的脚本,具体取决于您的零售模式设置。
2.) 将 AjaxFrameworkMode 属性设置为显式,以便您仅使用所需的 Ajax 函数。
这对我有用,我希望它可以帮助您消除使用“unsafe-eval”的需要