从ASP中删除所有内联脚本.网络项目



我们被要求实现Content-Security-Policy以减轻应用程序上的XSS攻击。因此,我们需要将所有内联脚本移动到引用文件中,然后可以在Content-Security-Policy HTTP头文件中指定为安全。

这在很大程度上是可行的,但现在似乎有些web控件(如webforms)注入内联脚本来执行回调。

是否有办法解决这个问题,或者我们需要使用第三方控件或可能创建自定义控件?

在ASP中开发web应用程序有两种技术。净:

  1. ASP。. NET MVC将用户界面和代码(应用程序逻辑和表示逻辑)分离开来。它完全控制生成的HTML代码,生成纯HTML代码,所以你可以使用'nonce-value'来允许内联脚本"和内联样式<style>

  2. ASP。. NET WebForms有一个与代码密切相关的用户界面逻辑,很难将其与代码分离,因此脚本和样式无法控制地嵌入到生成的HTML代码中。
    当使用WebForms时,您可以使用'<hash-algorithm>-<base64-value>',但是哈希值将取决于部署环境。nces不直接适用,但您可以使用一个技巧-覆盖__doPostBackHtmlTextWriter方法-请参阅这里的详细信息。

最新更新