asp.net - 如何在本地主机上的 asp.net MVC 应用程序中配置/使用 HTTP Public-Key-Pinning (HPKP)
问题描述
我必须在 localhost 上配置 HPKP 我不知道如何配置或使用它。如果你做到了,请帮助我
解决方案
在 ASP.NET Core 中实现 HPKP 实现 HPKP 的一种简单方法是使用我的库,您可以在 NuGet 上获得该库:Joonasw.AspNetCore.SecurityHeaders。
只需将其安装到您的 ASP.NET Core 项目中,然后您就可以通过单个函数调用将 HPKP 标头添加到您的应用程序中。
示例 Startup.cs 中的配置方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug(LogLevel.Debug);
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseHttpsEnforcement();
app.UseHsts(new HstsOptions
{
Seconds = 30 * 24 * 60 * 60,
IncludeSubDomains = false,
Preload = false
});
app.UseHpkp(hpkp =>
{
hpkp.UseMaxAgeSeconds(7 * 24 * 60 * 60)
.AddSha256Pin("nrmpk4ZI3wbRBmUZIT5aKAgP0LlKHRgfA2Snjzeg9iY=")
.SetReportOnly()
.ReportViolationsTo("/hpkp-report");
});
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "hpkp-report",
template: "hpkp-report",
defaults: new { controller = "Report", action = "Hpkp" });
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
推荐阅读
- kotlin - 在 EventHandler 中更改观察到的属性值会更改事件属性
- java - 使用 Apache commons 的 FTP 不工作 - 错误:550 未找到数据集(我正在使用的 FTPid 被附加到文件名)
- python - python如何从A列中删除重复项,同时保持B列的最大值
- websocket - 绕过 squid 的 websocket 流量
- cmake - 在 CMake 中,仅当需要重建任何子目录时,如何运行自定义命令
- node.js - 在 Sinon 中重置存根历史记录失败
- java - Camel - 使用先前设置的属性作为方法的参数
- intellij-idea - 新文件未出现在 Intellij 项目资源管理器中
- javascript - Javascript 代码将内存泄漏到 DOM 节点 - Javascript 参考在哪里
- php - 如何使用数组显示表单?