.NET企业应用安全开发动向-概览
太长不读版:试图从安全的全局视角触发,探讨安全的重要性,讨论如何识别安全问题的方法,介绍.NET提供的与安全相关的基础设施,以及一些与时俱进的安全问题,为读者建立体系化的安全思考框架。
引言
关于“安全”二字,“一千个读者有一个哈姆雷特”,有人说安全就是杀毒软件,有人说安全就是第三方软件的安全扫描,有人说安全就是渗透性攻击,而提到安全开发,大部分人则基本上没有进一步的认知,这又是什么新词?
由于不同理解的存在,使得企业应用开发者们很难从全局视角看待安全问题。如果我们联系当下的互联网新故事,或许会对这个概念有进一步的理解。
近期大事件:
近期互联网大厂系统有点不太稳定,前不久发生的热点:
阿里云崩了,由于RAM 系统出现故障,长达两小时的时间,使用了ak/sk 的应用调用都出现了问题,没过几天,阿里云的数据库也崩了,影响范围之大,一度被人以为是“年度之最”。然而,没过几天滴滴又崩了,据滴滴通报,由于底层系统原因,造成系统故障。本次事故预计持续时间长达20小时,由于滴滴面向全国人民、打车也是许多人日常出行的首选,其影响范围堪称空前绝后,刷新年度之最。随后,腾讯视频也出现了一些故障,与前两者相比可能没那么大,但事故方同样作为互联网顶流,自然而然也就备受关注。连续几起事故,使大家不得不怀疑,怀疑过去大厂所吹嘘的“安全”,搞不好都是人肉运维的功劳。
再往前,某直播平台CEO失联,有人说是平台上出现了赌博行为,一些主播利用直播平台进行操作,吸引观众下注,从中获取收益,有些“房间”一度每天流水几个亿,这种骚操作真的让人想都想不到。
再往前,某大型电商平台出现了个人信息泄漏事故,据说几十亿订单数据被人打包贩卖,根据图片来看,订单数据中包含用户真实姓名、订单号、商品名称型号、订单网址、用户手机号、地址等详细隐私信息。国人为数不多的隐私数据又一次当成了商品。
当然,除了国内有这种事故,国外也有,年初,推特推特发生信息泄漏,约2.35亿用户个人信息被泄。由此说明人类命运相互联系,跨越时空,无论你身处何处,总会被人关注,而你我的隐私数据,也是一些人最为关注的金矿。
安全是什么,安全开发是什么?
新闻再多,只要没发生在自己身上,终究只是故事,但只要发生在我们身边,就得成为“事故”,如果我们悲催的成为当事人,到时候肯定没办法去冷静的旁观事态的发展,得想尽办法去做各种善后措施,所以如果我们能利用这些教训,将助我们快人一步。
总结经验有三种方法,一种从别人的教训中总结经验,一种从自己的教训中总结经验,还有一种是从不总结经验。这些大厂们付出了巨额代价,给我们留下了思考:我们该怎么做以便避免此类事故的发生?这便是个安全话题。
安全,从广义上分为内容安全,数据安全,设备安全,行为安全。通俗理解,内容就是合规性问题,数据是指数据的产生、存储、分发的安全,行为是指操作过程和方法,设备就是主机和环境,通过这四个维度,使安全得以全方向的覆盖。
在软件开发过程中,如何将代码与各大安全结合起来,这就是属于安全开发的工作范围,笔者认为,安全开发贯穿在四大安全主题之中,是软硬件架构的一大核心关注点。这就要求我们在开发过程中,建立一套好的安全开发指导规则,这种开发准则不应受到软件部署架构复杂性的影响,放诸单体和服务化而皆准。
这就意味着我们应升维思考,不仅仅需要考虑解决问题,更需要考虑如何识别和防范问题,问题STRIDE和TARA 方法是两种常见的威胁建模分析方法。这两种方法,各有利弊,有时候可能还要结合起来使用。
作为成熟的企业应用框架,ASP.NET CORE 也推出了一系列与安全相关的基础设施,依托这些基础设施,使得我们能快速的将安全融入到产品开发之中。这些基础设施涵盖四大安全主题,如认证和鉴权,即便成熟如斯,它也在不断的升级完善,加密算法库又进一步充实,在应对安全性问题面前,我们的弹药又多了一点。
时代在发展,新技术也在不断涌现,以DevOps为代表的新型生产方式既在推动产业变革,也带来了新的挑战,而安全性问题首当其冲,引入的工具并非高枕无忧,说不定哪天就引入了新的风险因素,例如Jenkins ,作为一款专业的持续集成工具,它也几度因安全问题而带来骂名,容器也同样如此,一个小小的日志就可能把主机给打崩了。
结语
软件开发,看似稀松平常,奈何总有***民想要谋害我们(当然,有时候可能是自己人挖坑),所以有时候我们需要提前防范。作为一位开发者,笔者由于经常关注这些问题,形成了一些思考,并在.NET Conf China上与业界同仁共同探讨,期待能借助.NETCONF这个平台,抛砖引玉。
欢迎大家通过扫描二维码关注,同时还有几张讲师权益票,需要的朋友可以联系我,先到先得,送完为止。


.NET企业应用安全开发动向-概览的更多相关文章
- Web前端开发大系概览 (前端开发技术栈)
前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...
- Windows Phone 8.1 开发技术概览 (Universal APP)
前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Univ ...
- 钉钉企业应用C#开发笔记之一(免登)
关于钉钉 钉钉是阿里推出的企业移动OA平台,本身提供了丰富的通用应用,同时其强大的后台API接入能力让企业接入自主开发的应用成为可能,可以让开发者实现几乎任何需要的功能. 近期因为工作需要研究了一下钉 ...
- 01: 企业微信API开发前准备
目录:企业微信API其他篇 01: 企业微信API开发前准备 02:消息推送 03: 通讯录管理 04:应用管理 目录: 1.1 术语介绍 1.2 开发步骤 1.1 术语介绍返回顶部 参考文档:htt ...
- 企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作完善中...SpringMVC+JSP)
关于即时到账的开发.审核通过.简单测试如下. 希望看的可以收藏或者赞一下哦. 1:拥有自己的支付宝企业账号.去产品商店选择适合自己的方案.并签约合同. 2:选择合适的商家收款产品并去签约.填写相应的信 ...
- WebAPI 权限控制解决方案——Phenix.NET企业应用软件快速开发平台.使用指南.21.WebAPI服务(三)
21.1 数据服务 21.1.1基本操作功能 Phenixヾ的数据服务,提供了如下的基本操作: 功能 Type URI 参数 完整获取实体集合对象 GET api/Data 分页获取实体集合对象 ...
- JeeSite 企业信息化快速开发平台
平台简介 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. JeeSite本身是以Spring Framework为核心容器,Spri ...
- Office 365开发环境概览
本文于2017年3月26日首发于LinkedIn,原文链接请参考这里 本系列文章已经按照既定计划在每周更新,此前的几篇文章如下 Office 365 开发概览系列文章和教程 Office 365开发概 ...
- 企业信息化快速开发平台--JeeSite
JeeSite是在Spring Framework基础上搭建的一个Java基础开发平台,以Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Eh ...
- myEclipse+Spring boot+Hbuilder+jwt Token+mongoDB+企业微信H5开发
企业微信应用的H5开发 1.参考文档:weUI:http://jqweui.com/ 2.企业微信接口文档:https://work.weixin.qq.com/api/doc#10029 3.百度地 ...
随机推荐
- 我也来扒一扒python的内存回收机制!
python的内存回收是面试中经常会问到一个问题,今天我来给大家深度剖析下python的内存回收和缓存机制 1.引用计数器 我们知道,python是通过引用计数器来做内存回收的,下面我们来重点讲下引用 ...
- 【pandas小技巧】--DataFrame的显示参数
我们在jupyter notebook中使用pandas显示DataFrame的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期. 这时,就需要调整pandas显示 ...
- python列表的增删
list = [1, 2, 3, 4]# 打印后两位print(list[-2:])# 打印前2位print(list[:2])# 修改列表元素list[0] = 5print(list)# 添加元素 ...
- 怎么选择API接口来获取自己想要的数据
在今天的数字时代,数据变得越来越重要,API接口也成为了获取数据的一种重要方式.无论是开发自己的应用程序还是进行市场营销,数据的获取都是非常必要的.但是,如何选择API接口来获取自己想要的数据呢? 以 ...
- 为什么创建 Redis 集群时会自动错开主从节点?
哈喽大家好,我是咸鱼 在<一台服务器上部署 Redis 伪集群>这篇文章中,咸鱼在创建 Redis 集群时并没有明确指定哪个 Redis 实例将担任 master,哪个将担任 slave ...
- torch-1 tensor & optim
开个新坑, pytorch源码阅读-从python代码开始读起. torch/ 1.tensor.py 继承自torch._C._TensorBase , 包括各种操作,TODO:随后看cpp代码 _ ...
- 杰哥教你面试之一百问系列:java中高级多线程concurrent的使用
目录 问题1:什么是ConcurrentHashMap?它与HashMap的区别是什么? 问题2:什么是CopyOnWriteArrayList?它适用于什么样的场景? 问题3:什么是Blocking ...
- 深入分布式一致性:Raft 和 etcdRaft
分布式一致性是构建可靠的分布式系统的关键要素之一.为了确保数据的一致性和可用性,一致性算法的设计变得至关重要.在这篇博文中,我们将深入探讨两个与分布式一致性密切相关的主题:Raft 算法和 etcdR ...
- sublime运行php文件
sublime 运行 php 文件 使用 sublime 打开一个php文件 然后 Tools -> Build System -> New Build System 将以上打开的文件内容 ...
- 时髦称呼:SQL递归"语法糖"的用法
Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为: s ...