当前位置: 首页 > 知识库问答 >
问题:

NWebSec非MVC WebForms ASPX.NET 4.6.1 C#-配置不起作用

邓深
2023-03-14

我需要支持在ASP.NET、C#和.NET 4.6.1上运行的旧网站。安全审计已经通知我们,我们需要强制执行内容安全策略。我搜索了google,但没有找到NWebSec中是否支持webforms(而不是MVC)的具体答案。https://docs.nwebsec.com/en/latest/确实提到了对ASP.NET 4的支持,如下所示:

NWebsec for ASP.NET 4
Historically, NWebsec has been targeting ASP.NET 4. The following packages target ASP.NET 4:

NWebsec
NWebsec.Mvc
NWebsec.Owin

为了测试NWebSec对ASP.NET webforms的支持,我遵循了以下步骤:

>

  • 使用.NET 4.6.1在VS 2017中创建了一个新的ASP.NET webforms项目。测试了它是否有效。

    <nwebsec> 
    <httpHeaderSecurityModule xmlns="http://nwebsec.com/HttpHeaderSecurityModuleConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="NWebsecConfig/HttpHeaderSecurityModuleConfig.xsd"> 
    <securityHttpHeaders> 
    <content-Security-Policy enabled="true"> 
    <default-src self="true"/> 
    <script-src self="true" enabled="true"> 
    <add source="maxcdn.bootstrapcdn.com" /> 
    <add source="code.jquery.com" /> 
    <add source="ajax.googleapis.com" /> 
    <!--<add source ="localhost:60252"/>--> 
    </script-src> 
    <style-src self="true" /> 
    <report-uri enableBuiltinHandler="true"/> 
    </content-Security-Policy> 
    </securityHttpHeaders> 
    </httpHeaderSecurityModule> 
    </nwebsec>
    

    5.我在Google Chrome控制台中发现了以下错误

    `Modernizr-2.8.3.JS:134拒绝应用内联样式,因为它违反了以下内容安全策略指令:“样式-src'self'”。'unsafe-inline'关键字、散列('sha256-cwe3bg0vyqoidnakbb/btdkhul49qzuwgncmpgny5zw=')或nonce('nonce-...')是启用内联执行所必需的。

    LocalHost/:20拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'maxcdn.bootstrapcdn.com code.jquery.com ajax.googleapis.com”。'unsafe-inline'关键字、散列('sha256-uyoamcrbfm4tx/ww+6efuijxuwz3yfrt7fwutlgnpue=')或nonce('nonce-...')是启用内联执行所必需的。

    LocalHost/:52拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'maxcdn.bootstrapcdn.com code.jquery.com ajax.googleapis.com”。'unsafe-inline'关键字、散列('sha256-ajiprk0+ga273ykzzzx3bqthwvwc1v3r9erdu31wh6i=')或nonce('nonce-...')是启用内联执行所必需的。`

    例如,单击Chrome控制台中粗体显示的错误会导致以下JavaScript块,该块正由ASP.NET framework注入到aspx页面中

    
    <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['ctl01'];
    if (!theForm) {
        theForm = document.ctl01;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    </script>
    

    我希望看到这些Google控制台错误消失,但是,我不希望允许'unsafe-inline'关键字或使用散列('sha256-uyoamcrbfm4tx/ww+6efuijxuwz3yfrt7fwutlgnpue=')或nonce('nonce-...')。欢迎提供任何帮助/指示/支持。

  • 暂时还没有答案

     类似资料:
    • 这是我第一次使用Spring-Data-jpa和Querydsl。 我正在尝试配置数据模型的自动生成。 我执行了以下步骤: 我在pom中添加了以下依赖项。xml 然后我添加了以下插件 但我总是在pom中遇到同样的错误。xml: 生命周期配置未涵盖插件执行:com。迈塞马。maven:maven apt插件:1.0.2:流程(执行:默认,阶段:生成源代码) 并且未生成和填充target/genera

    • 我在may Spring应用程序中添加了安全问题,所以我想通过调试Spring。 Log4j正在工作,因为我的服务正在将调试信息记录到控制台。但是Spring没有记录任何东西到我的控制台 这是我的 在我如此放置。结果: 我尝试在我的网站上添加这个。正如在这个问题中所说的xml 我在其他应用程序中使用了此调试,但我真的没有看到原因。。。谢谢你的帮助

    • 问题内容: 我正在尝试使用Spring Security,并且有一个用例,其中我想保护不同的登录页面和不同的URL集。 这是我的配置: 这些类是具有注释的另一个类的内部类。 的安全性工作正常,但所有页面均未得到保护,登录页面未发生任何重定向。我搜索了其他答案,但没有一个有效。 问题答案: 看一下: 1正常配置身份验证 2创建一个包含的实例,以指定应首先考虑的对象。 3 r指出这仅适用于以开头的 4

    • 我试图实现一个Spring boot云配置服务器。 我的application.properties文件: 主类: 问题是,当我试图从浏览器url(如http://localhost:8888/client-config/test)点击client config属性时,我被重定向到登录页面。 SpringBootVersion='2.1.6.Release' springcloudversion=

    • 问题内容: 我正在尝试使用Spring Security,并且有一个用例,其中我想保护不同的登录页面和不同的URL集。 这是我的配置: 这些类是具有注释的另一个类的内部类。 的安全性工作正常,但所有页面均未得到保护,登录页面未发生任何重定向。我搜索了其他答案,但没有一个有效。 问题答案: 看一下Spring Security Reference: 1正常配置身份验证 2创建一个包含的实例,以指定应

    • 问题内容: 更新的问题 我的虚拟主机 问题答案: 这是问题的最可能原因。您已经在超级用户的主文件夹中创建了virtualenv。但是该文件夹不太可能被Apache访问。默认情况下,其他任何用户都无法访问用户的主文件夹。 Web服务器和WSGI过程将运行作为一个非特权用户通常命名为,,或者类似的东西。虽然您可以通过更改/ root /上的权限来解决此问题,但这不是很大。如果是普通用户,则危险性会降低