Web信息安全

Web信息安全

在当今的互联网时代,信息安全问题常常发生,如何保证信息的安全成为开发者不得不面对的问题。html

CIA

信息安全的CIA原则,大体阐述了实践信息安全的几个基本原则:算法

  1. 保密性(Confidentiality):确保信息在存储、使用、传输过程当中不会泄漏给非受权用户或实体。安全

  2. 完整性(Integrity):确保信息在存储、使用、传输过程当中不会被非受权用户篡改,同时还要防止受权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。服务器

  3. 可用性(Availability):确保受权用户或实体对信息及资源的正常使用不会被异常拒绝,容许其可靠而及时地访问信息及资源。网络

套路

在Web时代,信息安全一般须要考虑以下几个方面:ide

  1. 传输过程:被窃听,被篡改,被重放等(中间人攻击等)
  2. 接入过程:双方身份认证,操做数据(参数)认证,流量控制等(越权攻击SQL注入DDos攻击等)
  3. 存储/服务过程:数据和应用须要多地灾容,避免天灾人祸。

防御

身份验证

当访问一个具备权限的接口的时候,服务器须要验证访问者的身份,而如何鉴定访问者的身份呢? 一般的状况下,咱们会使用密码,指纹,证书,验证码,TOKEN 等手段来验证一个用户的真实身份。在这个背后,隐藏着一个问题:为何密码,指纹,TOKEN,能够验证访问者的身份?为了回答这个问题,咱们能够发现一个共性,**就是这些信息(密码,指纹,TOKEN)只有访问者知道,他人不知道,因此回答正确,就能验证访问者的身份。这样子就能够验证访问者的身份了。**固然若是被第三人知道了,那么就GG 思密达了。加密

TOKEN的使用

关于TOKEN,就不得不说移动端的崛起,在2008年以前,基本上提供的服务都是基于Web的,经过SESSION + COOKIE来完成,然而到了后来,移动端开始崛起。开发者遇到这COOKIE很差用,跨服务器访问资源等等问题。为了解决这个问题,出现了OAuth2.0的标准,经过这个标准,基本上能够解决移动端身份验证的问题。这里简述一下一般移动端TOKEN使用的场景:设计

  1. APP 打开,跳出验证页面,输入用户名 和 密码
  2. 服务器进行验证,验证经过,返回TOKEN做为给APP
  3. APP使用TOKEN访问服务器的资源。

而TOKEN具体是什么?一般状况下,它对移动端来讲就是一段随机数字。固然,对于服务器,能够经过对称加密的算法在TOKEN上作一些特别的设计,如加入用户名之类的。code

HTTPS

HTTPS 能够算是现今信息安全的基石之一了,采用SSL进行传输数据。以下是HTTPS 的基本过程图解:htm

HTTPS

大体的阶段为:

  1. 客户端发起请求
  2. 服务器响应请求,给定本身的公钥(可能被第三方CA加密过)
  3. 客户端验证公钥(若是被第三方CA加密过,则使用CA的公钥进行解密,而且验证域名是否一致
  4. 客户端经过验证公钥,选择一套对称加密算法,生成 密钥,而且使用服务器的公钥进行加密
  5. 服务器使用本身的私钥,解密对称加密的密钥
  6. 客户端 和 服务器 使用对称密钥进行信息交换

HTTPS协议能防御大部分的网络攻击,在构建Web站点的时候,建议对关键资源进行HTTPS协议传输。

参考

相关文章
相关标签/搜索