HTTP是互联网上应用最为普遍的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可使浏览器更加高效,使网络传输减小。html
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。HTTPS协议的主要做用能够分为两种:一种是创建一个信息安全通道,来保证数据传输的安全;另外一种就是确认网站的真实性。web
一、https协议须要到ca申请证书,通常免费证书较少,于是须要必定费用。
二、http是超文本传输协议,信息是明文传输,https则是具备安全性的SSL加密传输协议。
三、http和https使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。
四、http的链接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 后端
虽说HTTPS有很大的优点,但其相对来讲,仍是存在不足之处的:
一、HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增长10%到20%的耗电;
二、HTTPS链接缓存不如HTTP高效,会增长数据开销和功耗,甚至已有的安全措施也会所以而受到影响;
三、SSL证书须要钱,功能越强大的证书费用越高,我的网站、小网站没有必要通常不会用。
四、SSL证书一般须要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
五、HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么做用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家能够控制CA根证书的状况下,中间人攻击同样可行。浏览器
post 请求比 get 请求更安全,由于post请求不会被缓存,不会保留在浏览器历史记录中,不能被收藏为书签,而且请求对数据长度没有要求。缓存
当有须要缓存一些重要信息到本地能够对数据进行MD5加密,而后再缓存到 SessionStorage 中。安全
具体参考 https://blog.csdn.net/zxf1242652895/article/details/78204842
登录后,后端生成一个sessionid放在cookie中返回给客户端,而且服务端一直记录着这个sessionid,客户端之后每次请求都会带上这个sessionid,服务端经过这个sessionid来验证身份之类的操做。因此别人拿到了cookie等于拿到了sessionid,就能够彻底替代你。服务器
登录后,后端会返回一个token给客户端,客户端将这个token存储起来,而后每次客户端请求都须要开发者手动将token放在header中带过去,服务端每次只须要对这个token进行验证就能使用token中的信息来进行下一步操做了。cookie
Token比Cookie安全,Token能够防止 CRSF 攻击。网络
1.对用户输入的信息验证过滤。
2.对重要的表单、请求作身份验证。
3.作路由重定向。session
用户经过各类方式将恶意代码注入到其余用户的页面中。就能够经过脚本获取信息,发起请求,之类的操做。--- 对用户输入的信息验证过滤防止XSS攻击。
跨站请求攻击,简单地说,是攻击者经过一些技术手段欺骗用户的浏览器去访问一个本身曾经认证过的网站并运行一些操做(如发邮件,发消息,甚至财产操做如转帐和购买商品)。因为浏览器曾经认证过,因此被访问的网站会认为是真正的用户操做而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求自己是用户自愿发出的。csrf并不可以拿到用户的任何信息,它只是欺骗用户浏览器,让其以用户的名义进行操做。 --- 使用Token
本文整理自:
https://www.xinran001.com/frontend/283.html
http://www.javashuo.com/article/p-fcrlmwpx-ey.html