无锡做网站的公司,服装网站建设规划书怎么写,wordpress+解密成md5,广州百度网站建设公司解决asp.net mvc发布到iis下安全问题 环境信息1.The web/application server is leaking version information via the Server HTTP response2.确保您的Web服务器、应用程序服务器、负载均衡器等已配置为强制执行Strict-Transport-Security。3.在HTML提交表单中找不… 解决asp.net mvc发布到iis下安全问题 环境信息1.The web/application server is leaking version information via the Server HTTP response2.确保您的Web服务器、应用程序服务器、负载均衡器等已配置为强制执行Strict-Transport-Security。3.在HTML提交表单中找不到反CSRF令牌。跨站点请求伪造是一种攻击涉及迫使受害者在不知情或无意的情况下向目标目标发送HTTP请求以便作为受害者执行操作。根本原因是应用程序功能以可重复的方式使用可预测的URL/表单操作。攻击的本质是CSRF利用了网站对用户的信任。相比之下跨站脚本XSS利用了用户对网站的信任。与XSS一样CSRF攻击不一定是跨站点的但也可能是。跨站点请求伪造也称为CSRF、XSRF、一键攻击、会话骑行、混淆代理和海浪。CSRF攻击在许多情况下都是有效的包括*受害者在目标站点上有一个活动会话。*受害者在目标站点上通过HTTP身份验证进行身份验证。*受害者与目标站点位于同一本地网络上。CSRF主要用于使用受害者的权限对目标站点执行操作但最近发现了通过访问响应来披露信息的技术。当目标站点易受XSS攻击时信息泄露的风险会急剧增加因为XSS可以用作CSRF的平台允许攻击在同源策略的范围内进行。4.响应包含“仅内容安全策略报告”标头这可能表示正在进行的实施工作或在促进预生产到生产过程中的监督等。内容安全策略CSP是一个附加的安全层有助于检测和缓解某些类型的攻击包括跨站脚本XSS和数据注入攻击。这些攻击用于从数据盗窃到网站污损或分发恶意软件。CSP提供了一组标准HTTP标头允许网站所有者声明允许浏览器在该页面上加载的已批准内容来源--涵盖的类型包括JavaScript、CSS、HTML框架、字体、图像和可嵌入对象5.The response does not include either Content-Security-Policy with frame-ancestors directive or X-Frame-Options to protect against ClickJacking attacks.6.反MIME嗅探标头X-Content-Type-Options未设置为“nosniff”。这允许旧版本的Internet Explorer和Chrome对响应正文执行MIME嗅探从而可能导致响应正文被解释并显示为声明的内容类型以外的内容类型。当前2014年初和旧版本的Firefox将使用声明的内容类型如果设置了而不是执行MIME嗅探。7.web/应用程序服务器通过一个或多个“X-Powered-By”HTTP响应标头泄漏信息。访问此类信息可能有助于攻击者识别您的web应用程序所依赖的其他框架/组件以及这些组件可能存在的漏洞。 环境信息
服务器Windwos Server 2016项目框架版本.NET Framework 4.7.2
1.The web/application server is leaking version information via the “Server” HTTP response
以下静态文件请求都携带了服务器信息 为什么请求接口没有那是因为在Global.asax.cs配置了
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{var app sender as HttpApplication;if (app null || app.Context null){return;}// 移除Header中的Serverapp.Context.Response.Headers.Remove(Server);
}想要解决请求静态文件携带Server信息可以使用使用 URL Rewrite 模块移除 Server 头URL Rewrite 模块可以全局处理所有请求包括静态文件
1.安装文件下载地址下载地址
2.配置web.config
configurationsystem.webServerrewriteoutboundRulesrule nameRemove Server Headermatch serverVariableRESPONSE_Server pattern.* /action typeRewrite value //rule/outboundRules/rewrite/system.webServer
/configuration3.效果如下
2.确保您的Web服务器、应用程序服务器、负载均衡器等已配置为强制执行Strict-Transport-Security。
iis响应头添加如下配置
Strict-Transport-SecurityincludeSubDomains效果
3.在HTML提交表单中找不到反CSRF令牌。跨站点请求伪造是一种攻击涉及迫使受害者在不知情或无意的情况下向目标目标发送HTTP请求以便作为受害者执行操作。根本原因是应用程序功能以可重复的方式使用可预测的URL/表单操作。攻击的本质是CSRF利用了网站对用户的信任。相比之下跨站脚本XSS利用了用户对网站的信任。与XSS一样CSRF攻击不一定是跨站点的但也可能是。跨站点请求伪造也称为CSRF、XSRF、一键攻击、会话骑行、混淆代理和海浪。CSRF攻击在许多情况下都是有效的包括*受害者在目标站点上有一个活动会话。*受害者在目标站点上通过HTTP身份验证进行身份验证。*受害者与目标站点位于同一本地网络上。CSRF主要用于使用受害者的权限对目标站点执行操作但最近发现了通过访问响应来披露信息的技术。当目标站点易受XSS攻击时信息泄露的风险会急剧增加因为XSS可以用作CSRF的平台允许攻击在同源策略的范围内进行。
创建令牌
public static class CsrfTokenHelper
{private const string SecretKey ; // 服务器端的密钥 public static string CreateCsrfToken(string user){string token ${user}; // 将会话ID和用户值组合起来 byte[] secretKeyBytes Encoding.UTF8.GetBytes(SecretKey);byte[] tokenBytes Encoding.UTF8.GetBytes(token);using (HMACSHA256 hmac new HMACSHA256(secretKeyBytes)){byte[] hashBytes hmac.ComputeHash(tokenBytes);string csrfToken Convert.ToBase64String(hashBytes);return csrfToken;}}
}前端from请求中携带令牌
input typehidden nameCSRFToken添加一个验证令牌的过滤器
//解决(CSRF)安全问题,也就是from没有提供票据问题
public class CsrfTokenFilter : ActionFilterAttribute
{public override void OnActionExecuting(ActionExecutingContext context){// 获取crsf_tokenstring xsrf_token_headers context.HttpContext.Request.Headers[XSRF-TOKEN] null ? : context.HttpContext.Request.Headers[XSRF-TOKEN].ToString();string xsrf_token_froms string.Empty;// 获取表单数据if (context.HttpContext.Request.Form.Count 0){FormCollection formCollection new FormCollection(context.HttpContext.Request.Form);xsrf_token_froms formCollection[CSRFToken];}string newCsrfToken CsrfTokenHelper.CreateCsrfToken(CurrentUser.UserAccount);if (xsrf_token_headers ! newCsrfToken || xsrf_token_froms ! newCsrfToken){// 验证失败抛出 401 Unauthorized 异常 context.Result RedirectLogin(/Home/Error);}base.OnActionExecuting(context);}
}在接口中使用
[WithoutLocalization]
[CsrfTokenFilter]
public JsonResult xxxxx(FormCollection formCol)
{}4.响应包含“仅内容安全策略报告”标头这可能表示正在进行的实施工作或在促进预生产到生产过程中的监督等。内容安全策略CSP是一个附加的安全层有助于检测和缓解某些类型的攻击包括跨站脚本XSS和数据注入攻击。这些攻击用于从数据盗窃到网站污损或分发恶意软件。CSP提供了一组标准HTTP标头允许网站所有者声明允许浏览器在该页面上加载的已批准内容来源–涵盖的类型包括JavaScript、CSS、HTML框架、字体、图像和可嵌入对象
这个问题太恶心了,要是写了内联样式、行内样式、引入脚本文件了配置了之后各种问题解决文档
https://www.w3.org/TR/CSP/
https://developer.mozilla.org/en-US/docs/Web/HTTP/CSPweb.config配置
system.webServerhttpProtocolcustomHeaders!--解决Header中没有csp--add nameContent-Security-Policy valuedefault-src self;script-src self unsafe-inline unsafe-eval; font-src self unsafe-inline unsafe-eval data: http://localhost:*;img-src self data: blob: http://localhost:*; style-src self unsafe-inline; /!--允许请求的http 动作--/customHeaders/httpProtocol
/system.webServer5.The response does not include either Content-Security-Policy with ‘frame-ancestors’ directive or X-Frame-Options to protect against ‘ClickJacking’ attacks.
system.webServerhttpProtocolcustomHeadersadd nameX-Frame-Options valueSAMEORIGIN //customHeaders/httpProtocol
/system.webServer6.反MIME嗅探标头X-Content-Type-Options未设置为“nosniff”。这允许旧版本的Internet Explorer和Chrome对响应正文执行MIME嗅探从而可能导致响应正文被解释并显示为声明的内容类型以外的内容类型。当前2014年初和旧版本的Firefox将使用声明的内容类型如果设置了而不是执行MIME嗅探。
system.webServerhttpProtocolcustomHeadersadd nameX-Content-Type-Options valuenosniff//customHeaders/httpProtocol
/system.webServer7.web/应用程序服务器通过一个或多个“X-Powered-By”HTTP响应标头泄漏信息。访问此类信息可能有助于攻击者识别您的web应用程序所依赖的其他框架/组件以及这些组件可能存在的漏洞。
携带服务器信息截图 打开iis下的HTTP响应标头干掉X-Powered-By 调整后的效果