ASP.NET WebAPI数据传输安全HTTPS实战项目演练
一、课程介绍
HTTPS是互联网 Web 大势所趋,各大网站都已陆续部署了 HTTPS 。 全站HTTPS时代,加密用户与网站间的交互访问,在客户端浏览器和Web服务器之间建立安全加密通道,一般情况下,由于HTTP协议的安全性,传递的参数容易被拦截,从而可能导致潜在的危险,所以一般WebAPI接口层都采用了HTTPS协议的,也就是采用SSL层来对数据进行安全性的加密的。
国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势。为鼓励全球网站的 HTTPS 实现,一些互联网公司都提出了自己的要求:
1)Google 已调整搜索引擎算法,让采用 HTTPS 的网站在搜索中排名更靠前;
2)到了2018年7月,Chrome浏览器的地址栏将把所有HTTP标示为不安全网站。
3)苹果要求 2017 年App Store 中的所有应用都必须使用 HTTPS 加密连接;
4)当前国内炒的很火热的微信小程序也要求必须使用 HTTPS 协议;
5)新一代的 HTTP/2 协议的支持需以 HTTPS 为基础。等等,因此想必在不久的将来,全网 HTTPS 势在必行。
1.1、ASP.NET WebAPI如何保证客户端以安全的方式进行访问?
先说一下何为安全?我们需要解决什么问题?
调用安全:由于WebAPI 是暴露在公网中,怎么防止非法用户调用我们的服务呢?因此我们需要解决:认证问题。
数据传输安全:由于我们的数据都是通过明文在网络上进行传输很容易被窃取到。因此我们需要解决:数据被窃取问题。
因此:我们可以通过Token验证机制来保证WebAPI 的认证使用;可以通过HTTPS/SSL来保证数据的加密,防止网络侦听!
关于调用安全大家感兴趣的话可以学习《ASP.NET WebApi 基于JWT实现Token签名认证》、《ASP.NET WebApi 基于分布式Session方式实现Token签名认证》 课程,本次分享课程阿笨给大家分享的是数据传输安全《ASP.NET WebAPI数据传输安全HTTPS/SSL实战项目演练》
1.2、本次分享课程包含知识点如下:
1、10秒钟教你如何将一个Web项目变为支持Https,这也许是史上最快速的操作方式了,没有之一!
2、使用OpenSSL生成自签名证书搭建WebAPI Https(IIS)站点实战演练
3、使用免费SSL证书搭建WebAPI Https(IIS)站点实战演练。 5分钟教你快速将ASP.NET WebAPI部署在IIS上并支持HTTPS,这可能史上最简单快速的方式了!
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、概念名称含义介绍
1、什么是HTTP和HTTPS以及区别?
HTTPS协议和HTTP协议的区别:
2、什么是数字证书?
3、什么是SSL证书以及作用和加密原理
3.1、什么是SSL
3.2、SSL证书作用
3.3、SSL加密原理
4、SSL单向认证和SSL双向认证区别
三、ASP.NET WebAPI之HTTPS/SSL实战演练
1、10秒钟教你如何将一个Web项目变为支持Https,这也许是史上最快速的操作方式了,没有之一!
2、使用OpenSSL生成自签名证书搭建WebAPI Https(IIS)站点实战演练
3、使用免费SSL证书搭建WebAPI Https(IIS)站点实战演练
5分钟教你快速将ASP.NET WebAPI部署在IIS上并支持HTTPS,这可能史上最简单快速的方式了!
4、如何实现IIS站点ASP.NET WebAPI通过访问HTTP自动跳转到HTTPS。
四、课后思考与总结
4.1、SSL证书的安全问题部署了HTTPS一定就安全吗?
4.2、HTTPS 缺点:
4.3、SSL双向验证
ASP.NET WebAPI数据传输安全HTTPS实战项目演练的更多相关文章
- C# WebApi+Task+WebSocket实战项目演练(四)
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第四部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...
- C#网络编程技术FastSocket实战项目演练
一.FastSocket课程介绍 .NET框架虽然微软提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包.组包.粘包.维护连接列表等,UDP协议需要处理丢包.乱序,而 ...
- C#网络编程技术微软Socket实战项目演练(三)
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第三部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...
- C# RabbitMQ优先级队列实战项目演练
一.需求背景 当用户在商城上进行下单支付,针对客户等级的不同和订单金额的大小划分客户级别,需要优先处理给标识为大订单的客户发送一份订单邮件提醒.那么我们应用程序如何解决这样的需求场景呢?今天阿笨给大家 ...
- C#模板引擎NVelocity实战项目演练
一.背景需求 很多人在做邮件模板.短信模板的时候,都是使用特殊标识的字符串进行占位,然后在后台代码中进行Replace字符串,如果遇到表格形式的内容,则需要在后台进行遍历数据集合,进行字符串的拼接,继 ...
- C# RabbitMQ延迟队列功能实战项目演练
一.需求背景 当用户在商城上进行下单支付,我们假设如果8小时没有进行支付,那么就后台自动对该笔交易的状态修改为订单关闭取消,同时给用户发送一份邮件提醒.那么我们应用程序如何实现这样的需求场景呢?在之前 ...
- WinForm企业级框架实战项目演练
一.课程介绍 我们都知道在软件架构方式分为:C/S和B/S两类.这里阿笨不谈论两种软件架构的优劣之分,因为它们各有千秋,用于不同场合.一位伟大的讲师曾经说过一句话:事物存在即合理!录制这堂课程的目的就 ...
- .NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
一.课程介绍 明人不说暗话,跟着阿笨一起玩NET .本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享 ...
- WinForm多语言版本实战项目演练
一.课程介绍 关于如何实现“WinForm多语言版本”网上有很多实现技术方案,可以说是“琳琅满目”,"包罗万象".俗话说的好:一千个读者就有一千个哈姆雷特!如果您工作中恰好也遇到这 ...
随机推荐
- bash: cannot create temp file for here-document: Read-only file system
文件系统被强制只读问题,第一眼看到百度了一下,说可能磁盘坏了.卧槽我都吓懵了系统盘坏了,闹着玩呢,然后接着查资料,排查 mount 查看所有挂载,发现根目录的挂载权限是ro只读. /dev/sda2 ...
- P1182 数列分段`Section II` P1316 丢瓶盖 二分答案
题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 4 5 142451要分成 ...
- Oozie
Oozie的功能模块 workflow 由多个工作单元组成 工作单元之间有依赖关系 MR1->MR2->MR3->result hadoop jar:提交1个MR oozie:监控当 ...
- 048 SparkSQL自定义UDAF函数
一:程序 1.需求 实现一个求平均值的UDAF. 这里保留Double格式化,在完成求平均值后与系统的AVG进行对比,观察正确性. 2.SparkSQLUDFDemo程序 package com.sc ...
- oracle中date数据的转换问题
(TO_NUMBER(TO_CHAR(FP.KPRQ, 'HH24')) >= 18 kprq >= to_DATE ('2017-01-12 18:00:00','yyyy-MM-dd ...
- Java 之 Web前端(六)
1.AJAX a.定义:异步的 JS 和 XML b.作用:不重新加载页面的情况下,与服务器的数据进行交互,改变网页的部分内容 c.语法: <html> <head> < ...
- HierarchicalClustering:编写HierarchicalClustering层次聚类算法—Jason niu
from numpy import * class cluster_node: def __init__(self,vec,left=None,right=None,distance=0.0,id=N ...
- Windows10系统网络连接问题
Thinkpad笔记本Windows10系统突然遇到网络连接问题: 问题:今天同事遇到一个WiFi连接问题,ThinkPad笔记本在公司和家里面都无法连接WiFi 寻找问题: 1.检查硬件问题 首先我 ...
- Linux学习笔记 11
移除文件 #rm -i file 有信息确认的文件删除 #rm file1 file2 有信息确认的文件删除 #rm -rf file 强制删除file文件
- linux学习笔记 yum 在线管理软件包
-y 如果yum在工作过程中需要使用者响应.这个参数可以直接回答yes #yum list 列出资源库中所有可安装或者可更新的rpm包 #yum perl 列出为perl的包 #yum perl* ...