关于信息泄露和防御

信息泄露

  • 信息泄露严格来讲并不属于安全漏洞,它是一类现象的总称
  • 无论是web开发者还是使用者都要注意信息泄露这样一件事情
  • 具体的信息泄露包括
    • 泄露系统敏感信息(服务器配置,密码等)
    • 泄露用户敏感信息(用户在某站注册,信息被卖或被盗)
    • 泄露用户密码(明显的安全漏洞)
  • 信息泄露的途径
    • 错误信息失控(没有很好处理错误信息被暴露了出来)
    • SQL注入(网站在非预期的情况下暴露很多数据库信息)
    • 水平权限控制不当(什么东西什么用户可以看,同样权利的用户是否存在越权)
    • XSS/CSRF(直接泄露信息)
  • 信息泄露会导致社会工程学的兴起

社会工程学

  • 社会工程学本来是一门严谨的科学
  • 但在日益复杂的安全环境中社会工程学越来越趋向社会工程学诈骗
  • 举个例子,它会通过一些渠道把你的信息挖出来
    • 昵称
    • 真名
    • 邮箱
    • 手机号
    • 身份证号
    • 密码
  • 这些信息, 越来越多后就可以做各种各样的组合和信息挖掘
    • 比如通过上述信息拿到你的支付宝密码,因为它可能需要手机号,身份证号和手机号
    • 当信息越来越多的时候,就能够把这个人的形象立体的建立起来
    • 这时候密保什么的都无效了,就可以直接冒充本人了
    • 这是一件非常可怕的事情
  • 你的身份是由你掌握的资料确定的
  • 别人掌握了你的资料,就可以伪装成你的身份
  • 之后就可以利用你的身份干坏事
  • 所以信息泄露是一件可以造成严重后果的事情
  • web开发一定要尽全力保证用户的资料不外泄

信息泄露常见的案例

  • 电信诈骗
  • 伪装公检法
  • QQ视频借钱
  • 微信伪装好友

OAuth思想

  • 这些危害和案例让我们触目惊心
  • 我们可以借鉴业界的一些成熟的方案:OAuth
  • OAuth涉及三方的参与者
    • QQ: 掌握了用户信息和密码等信息
    • 破网站: 存在安全隐患
    • 用户
  • OAuth可以做到在用户的授权下,从QQ哪里获取信息
  • 这样就可以很好防御QQ资料外泄
  • 其具体过程是这样的
    • 用户在破网站上请求第三方登录
    • 破网站重定向到QQ
    • 用户在QQ网站上输入密码确权登录
    • 登录成功后,由QQ网站跳回破网站
    • 破网站会请求accessToken(用户凭证)
    • QQ返回accessToken
    • 破网站通过accessToken向QQ获取用户信息
    • 其中这个accessToken只能获取用户授权时的用户资料并无法获取其他用户信息
  • 其中关键思想是
    • 一切行为由用户授权
    • 授权行为不泄露敏感信息
    • 授权会过期
  • 在我们网站开发的时候同样可以利用这个思想来防止用户信息的泄露

利用OAuth思想保护用户资料

  • 这里也是存在得三方对象的
    • 敏感资料:身份信息等
    • 业务:发布文章等功能
    • 用户
  • 这样拆分后,我们的网站会是这样
    • 用户通过账号密码向敏感资料方登录
    • 登录成功,敏感资料给用户派发票据token
    • 这时候用户带上票据token请求业务
    • 业务在处理过程中涉及用户资料的问题,比如发邮件通知等
      • 其操作业务时使用用户带过来的票据
      • 通过票据给敏感资料换取用户信息
      • 业务继续处理
  • 这个过程的特点
    • 用户授权读取资料
    • 无授权资料不可读取
    • 不允许批量获取数据
    • 数据接口可风控审计
      • 可知道业务查的是谁的
      • 查的什么
      • 什么时间查询的
  • 通过这个过程有效防止用户无限的外泄
    • 这时候单个用户资料还是有可能泄露的
    • 通过审计过程有效阻止了批量数据外泄的问题
    • 架构起来会有一些复杂,主要是搭建敏感资料对象
    • 我们可以给敏感资料换成另一个好听的名字:用户中心
  • 如果搭建了这么一个用户中心层,就可以从避免sql注入带来的攻击
  • 因为sql不在业务中,只是调用接口到用户中心调取用户数据,没有sql无法注入
  • 就算从其他业务注入了,那资料也不再这里,没法获取用户敏感数据
  • 如果企业内有一些比较不老实的员工想要卖用户数据,现在没有票据无法查询用户资料
  • 敏感资料(用户中心)只通过一两个员工去维护,不让大范围的员工访问,相对来说更安全

你可能感兴趣的:(Web,web安全,安全)