我需要支持在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 /上的权限来解决此问题,但这不是很大。如果是普通用户,则危险性会降低