CSDN|42 张图带你揭秘后端技术都要学啥?( 七 )

  • 域名解析

安全性公司中的数据财产 , 其重要程度不言而喻 。 系统的健壮性和安全性是保证系统持久运行的基础 。 不要因为数据泄露才去关注安全问题 。 也许说到安全问题 , 首先想到的是“用户名密码”泄漏 , 数据库被脱裤导致数据泄露 , hack直接拿到用户的敏感信息 , 所以我们通常有哪些手段或方法来尽全力的抵抗hack嘞 , 办法总比问题多嘛 。
  • 数据加解密
通过对用户密码 , 身份证等敏感数据加密是常用方法 。 加密方法通常分为:单向散列加密 , 对称加密和非对称加密 。 所谓单向散列加密 , 主要体现在单向二字 , 意味着对明文加密后是不可以解密 , 你即使是给明文加密的加密者 , 也无法通过密文知道其明文是什么 , 即加密单向 , 不支持解密 。 说的这么绝对?这么无敌?那只是理论上而已 , 常用的MD5算法就是大象散列加密 , 我们完全可以通过彩虹表等方式进行破解 。 怎么破解?说个简单的道理 , 我们设置密码的时候 , 通常会使用生日?手机号?什么love?什么520? , 这些组合是有限的 , 我们就可以建立一个比如生日和密文的映射表 , 然后通过XX彩虹表就可得到密码明文 。 CSDN|42 张图带你揭秘后端技术都要学啥?
本文插图
单向散列加密所以 , 通常的情况 , 使用单向散列加密的时候需要加一点盐 , 这样一来 , hack拿到密文 , 不知道盐 , 无法建立彩虹表 , 就更难还原明文 。 应用场景:通常应用在用户密码加密 。 其加密和校验过程如下:CSDN|42 张图带你揭秘后端技术都要学啥?
本文插图
应用场景我们通过上图来回顾一下一个网站的注册登录模块中的用户部分 , 用户注册需要输入用户名和密码 , 我们一般不会将裸露的将密码直接存放在数据库 , 不然被脱裤直接算裸奔 。 所以 , 用户输入密码 , 应用服务器获得密码后 , 调用单向散列加密算法 , 将加密的密文存放于数据库 , 用户下一次登录的时候 , 用户依然会输入密码 。 只是到了Web服务器后 , Web服务器会对输入的密码再进行一次单向散列加密 , 然后和数据库中取出来的密文进行对比 , 如果相同 , 则用户的验证成功 , 通常这样的方式可以保证用户密码的安全性 , 当然如果加一点盐 , 会增加破解的难度 。 对称加密对称加密是通过一个加密算法和密钥 , 对一段明文进行加密后得到密文 , 然后使用相同的密钥和对应的解密算法进行解密得到明文 。 CSDN|42 张图带你揭秘后端技术都要学啥?
本文插图
对称加密举个例子 , 我们不会将银行卡卡号 , 有效期等直接存储在数据库 , 而是会通过先加密 , 然后存储于数据库 。 使用的时候必须对密文进行解密还原出明文 。 这个时候使用对称加密算法 , 存储的时候加密算法进行加密 , 使用的时候解密算法解密 。 非对称加密非对称加密是说使用一个加密算法和一个加密秘钥进行加密得到密文 , 但是在解密出明文的时候 , 其加解密密钥和加密密钥不同 , 通常加密密钥叫做公钥 , 解密密钥叫做私钥 。 CSDN|42 张图带你揭秘后端技术都要学啥?
本文插图
非对称加密其实我们常用的 HTTPS 即是非对称加密的应用场景 。 用户在客户端进行通讯的时候 , 对数据使用的加密密钥和加密算法进行加密得到密文 , 到了服务端以后 , 使用解密密钥和算法进行解密得到明文 。 但是非对称消耗的资源比较多 , 所以HTTPS不是每次请求响应都采用非对称加密 , 而是先利用非对称加密 , 在客户单和服务器之间交换一个对称加密的密钥 , 然后每次的请求响应再使用对称加密 。 综上 , 使用费对称加密保证对称加密迷药的安全 , 使用对称加密密钥保证请求响应数据的安全 。 HTTP攻击与防护HTTP明文协议 , 咋们通过嗅探工具就可以清晰查看会话内容 , 这也是hack攻击门槛最低的方式 。 很常见的也就是SQL注入和XSS攻击 。 SQL注入是攻击者在提交请求参数的时候 , 包含了恶意的SQL脚本:


推荐阅读