.NET Core大大简化了.NET应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量,本文目的是介绍如何创建更安全的.NET Core应用程序。

1.在生产中使用HTTPS

传输层安全性(TLS)是HTTPS的官方名称,你可能听说过它称为SSL(安全套接字层),SSL是已弃用的名称,TLS是一种加密协议,可通过计算机网络提供安全通信。其主要目标是确保计算机应用程序之间的隐私和数据完整性。过去,TLS / SSL证书很昂贵,而且HTTPS被认为很慢,现在机器变得更快,已经解决了性能问题,Let's Encrypt提供免费的TLS证书,这两项发展改变了游戏,并使TLS成为主流。截至2018年7月24日,Google Chrome 将HTTP网站标记为“不安全”。虽然这在网络社区引起了相当多的争议。知名安全研究员特洛伊亨特创建了一个 为什么不适用HTTPS ?跟踪不使用HTTPS的大型网站的网站。

Let’s Encrypt TLS证书可以自动化生成和更新,由于他们是免费的,所以没有理由不去做!

要在ASP.NET Core应用程序中强制使用HTTPS,ASP.NET Core 2.1版本已经默认支持HTTPS。

----------public void ConfigureServices(IServiceCollection services)  部分:

services.AddMvc(options =>
{
options.Filters.Add(new RequireHttpsAttribute());//所有请求都使用HTTPS
})

---------public void Configure(IApplicationBuilder app, IHostingEnvironment env) 部分:

var options = new RewriteOptions().AddRedirectToHttps();
app.UseRewriter(options);
app.UseHttpsRedirection();

另一个重要的事情是使用HTTP严格传输安全性(HSTS)。HSTS是一种Web安全策略机制,可以保护网站免受协议降级攻击和cookie劫持。服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略传送到浏览器。ASP.NET Core默认发送此标头,以避免在开始时出现不必要的HTTP跃点。 具体参考 https://docs.microsoft.com/zh-cn/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio

2、升级到最新版本

定期升级应用程序中的依赖项有多种原因。安全性是让您有升级动力的最重要原因之一。 基础架构升级通常不如依赖项升级具有破坏性,因为库作者对向后兼容性和版本之间的行为更改的敏感性各不相同。话虽如此,当你在配置中发现安全漏洞时,您有三种选择:升级,修补程序或忽略。在对应用程序进行必要的更改以使用较新版本之后,就应用程序的整体运行状况而言,升级是最安全的。

3、启用CSRF保护

跨站点请求伪造(Cross-Site Request Forgery )是一种攻击,强制用户在他们当前登录的应用程序中执行不需要的操作。如果用户是普通用户,一个成功攻击可能涉及请求的状态更改,如转移资金或更改其电子邮件地址,如果用户具有提升管理员的权限,则CSRF攻击可能会危及整个应用程序。

ASP.NET Core具有出色的CSRF支持,ASP.NET Core使用 ASP.NET Core data protection stack 来实现防请求伪造。默认情况下处于启用状态,CSRF令牌将自动添加为隐藏输入字段。

如果你使用的是像Angular或React这样的JavaScript框架,则需要配置CookieCsrfTokenRepository以便JavaScript可以读取cookie。参考 https://www.cnblogs.com/tdfblog/p/aspnet-core-security-anti-request-forgery.html

4、使用内容安全策略防止XSS攻击

内容安全策略(CSP)是一个增加的安全层,可帮助缓解XSS(跨站点脚本)和数据注入攻击。 参考 http://www.cnblogs.com/wang2650/p/7785106.html

5、使用OpenID Connect进行身份验证

OAuth 2.0是行业标准的授权协议。它使用scope来定义授权用户可以执行的操作的权限。但是,OAuth 2.0不是身份验证协议,并且不提供有关经过身份验证的用户的信息。OpenID Connect(OIDC)是一个OAuth 2.0扩展,提供用户信息,除了访问令牌之外,它还添加了ID令牌,以及/userinfo可以从中获取其他信息的端点,它还添加了发现功能和动态客户端注册的端点。

如果使用OIDC进行身份验证,则无需担心如何存储用户、密码或对用户进行身份验证。相反,你可以使用身份提供商(IdP)为你执行此操作,你的IdP甚至可能提供多因素身份验证(MFA)等安全附加组件。

.NET Core具有良好的OpenID Connect 标准的基础,我们可以很容易的通过Identity Server4 等开源项目实现OpenID Connect的身份认证。

6、安全地存储敏感数据

应谨慎处理敏感信息,如密码,访问令牌等,你不能以纯文本形式传递,或者如果将它们保存在本地存储中。由于(GitHub)的历史已经一次又一次证明,开发人员并没有仔细考虑如何存储他们的秘密。一个好的做法是将保密信息存储在保管库中,该保管库可用于存储,提供对应用程序可能使用的服务的访问权限,甚至生成凭据。HashiCorp的Vault使得存储机密变得很轻松,并提供了许多额外的服务。

7、使用OWASP的ZAP测试您的应用程序

OWASP Zed Attack Proxy简写为ZAP,是一个简单易用的渗透测试工具,是发现Web应用中的漏洞的利器,更是渗透测试爱好者的好东西。OWASP ZAP安全工具是针对在运行活动的应用程序进行渗透测试的代理。它是一个受欢迎的(超过4k星)免费的开源项目,托管在GitHub上。OWASP ZAP用于查找漏洞的两种方法是Spider和Active Scan。

Spider工具以URL种子开头,它将访问并解析每个响应,识别超链接并将它们添加到列表中。然后,它将访问这些新找到的URL并以递归方式继续,为您的Web应用程序创建URL映射。

Active Scan工具将根据潜在漏洞列表自动测试你选择的目标。它提供了一个报告,显示Web应用程序可被利用的位置以及有关漏洞的详细信息。参考http://www.cnblogs.com/tdcqma/p/5344494.html

8、让你的安全团队进行代码审查

代码评审对任何高性能软件开发团队都至关重要。我们所有的生产代码和官方开源项目都需要通过我们的专家安全团队进行分析,但如果你正在处理敏感数据,也许你应该这样做!

可以参考的工具:

  • https://github.com/security-code-scan/security-code-scan

相关文章:

  • 独立版Jexus配置SSL,支持https访问

  • ASP.NET Core Web API 与 SSL

  • .NET MVC CSRF/XSRF 漏洞

  • ASP.NET Core 防止跨站请求伪造(XSRF/CSRF)攻击

  • ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

  • 基于Service fabric + Ocelot + Identity Server4 + 52ABP 的案例展示

  • ASP.NET Core Web API + Identity Server 4 + Angular 6 实战小项目视频

  • Identity Server 4 - Hybrid Flow - 使用ABAC保护MVC客户端和API资源

  • Identity Server 4 - Hybrid Flow - Claims

  • Identity Server 4 - Hybrid Flow - MVC客户端身份验证

  • Identity Server 4 预备知识 -- OpenID Connect 简介

  • ASP.NET Core 2.0 机密配置项

  • ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理

  • ASP.NET Core中的OWASP Top 10 十大风险-SQL注入

  • 基于Win10极简SonarQube C#代码质量分析

原文地址: https://www.cnblogs.com/shanyou/p/9952663.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core 必备安全措施相关推荐

  1. ASP.NET Core必备笔试题(含答案)

    1.如何在ASP.NET Core中激活Session功能? 首先要添加 session 包. 其次要在 config service 方法里面添加 session. 然后又在 configure 方 ...

  2. NET Core的代码安全分析工具 - Security Code Scan

    NET Core的代码安全分析工具 - Security Code Scan 原文:NET Core的代码安全分析工具 - Security Code Scan NET Core的代码安全分析工具 - ...

  3. 一个适合.NET Core的代码安全分析工具 - Security Code Scan

    本文主要翻译自Security Code Scan的官方Github文档,结合自己的初步使用简单介绍一下这款工具,大家可以结合自己团队的情况参考使用.此外,对.NET Core开发团队来说,可以参考张 ...

  4. javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...

    K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程 课程内容是关于Kubernetes微服务架构学习课程,基于K8S开展ASP.NET核心进行微 ...

  5. 程序员必备的编程助手 SmartCoder助你轻松集成HMS Core

    当开发者在集成HMS Core遇到一些疑问时,需要翻阅官网文档,反复查看集成说明或者API调用说明,或者研究GitHub上的开源示例代码,花费较多的时间,在IDE环境和网页浏览器之间反复切换也会耗费很 ...

  6. asp.net core系列 38 WebAPI 返回类型与响应格式--必备

    一.返回类型 ASP.NET Core 提供以下 Web API Action方法返回类型选项,以及说明每种返回类型的最佳适用情况: (1) 固定类型 (2) IActionResult (3) Ac ...

  7. linux下调试core dump方式汇总,工作必备技能

    缘起 调试,是开发流程中一个非常重要的环节.每个程序员都应,具备调试代码的能力,尤其对于从事 Linux 下的开发的读者. 从事 linux 下后台开发,有时候会遇到程序突然崩溃的情况,也没有任何日志 ...

  8. ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

    前言 在上篇文章中<ASP.NET Core Docker部署>中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或 ...

  9. asp.net core文档下载_推荐一个必备的开源项目 (附下载链接)

    点击上方"阿拉奇学Java",选择"置顶或者星标" 优质文章第一时间送达! 推荐阅读 | 大白话讲解技术专业用语 很多人都会遇到下载相关的需求,如果是只下载一个 ...

最新文章

  1. [汇编与C语言关系]2. main函数与启动例程
  2. C#项目中常用到的设计模式
  3. 活动目录的灾难恢复操作指导之三
  4. 量化策略回测ATRRSI
  5. 【Maclean Liu技术分享】拨开Oracle优化器迷雾探究Histogram之秘
  6. 洛谷——P2524 Uim的情人节礼物·其之弐
  7. 阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
  8. 职教云python程序设计答案_智慧职教云课堂Python程序设计(常州工业职业技术学院)答案公众号...
  9. 管螺纹如何标注_【专业知识】一次搞全所有螺纹常识,很基础
  10. 连续41次通过VB100认证,腾讯安全技术实力再获国际权威认可
  11. Far away from home
  12. maya导入abc动画_mayaamp;max文件导出fbx
  13. 安装protobuf可能遇到的问题
  14. 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
  15. Docker Pull非常缓慢(使用阿里云镜像加速器)
  16. ac7315功放音质_常见地功放地噪声及其处理技巧
  17. OpenCV实现图片搜索引擎
  18. 面试中遇到的错题(持续更新)
  19. 机器人地面站-[QGroundControl源码解析]-[9]-[Camera]
  20. NSIS脚本学习:判断版本并安装.NET Framework运行环境

热门文章

  1. Start DWM manually on Windows 7 and vista
  2. 面试专题(Mysql及Mongodb)
  3. javascriptjquery 判断滚动到页面底部
  4. OpenGL® ES 3.0 Programming Guide - Book Website
  5. 易成新能加码光伏产业链 作价28.29亿收购赛维两子公司
  6. Codeigniter中创建LeanCloud云函数实现微信支付
  7. 如何使用CDR智能填充工具
  8. 2596 售货员的难题
  9. Heartbeat+httpd+NFS 实现高可用的Web服务器
  10. ibatis学习笔记