Skip to content

Instantly share code, notes, and snippets.

@simonwoo
Last active November 29, 2016 10:59
Show Gist options
  • Save simonwoo/dc72a42822895bd44339faf96160b49f to your computer and use it in GitHub Desktop.
Save simonwoo/dc72a42822895bd44339faf96160b49f to your computer and use it in GitHub Desktop.

本质

Web 内容如何传输,方式是统一协议来形成标准的输入输出,载体是浏览器。数据通道安全需要保证以下两个目标:身份认证和数据不被泄漏和篡改,HTTPS 便是基于此需求产生的协议,在 HTTP 的基础上增加了 TLS 加密协议,通过数据加密校验数据完整性身份认证三种机制来保障安全。HTTPS 解决了点到点的安全和身份认证问题,接下来会出现问题的地方就只有 2 个:浏览器和服务器,这个层面上的安全问题并没有 HTTPS 一样简单到可以一次性解决。同源策略、跨站脚本攻击、跨站请求伪造、iframe 沙箱环境等等问题,繁杂至多。

HTTPS

关于传输协议这部分,可以总结:

  • 啥地方都要用 HTTPS
  • 采用 HSTS 来强制使用 HTTPS
  • 别忘了从可信的证书机构中请求可信证书
  • 不要乱放你的私钥
  • 用合理的配置工具来生成可靠地 HTTPS 配置
  • 在 Cookie 中设置“secure”标识
  • 不要把敏感的数据放在 URL 中
  • 隔一段时间就要好好看看你的 HTTPS 的配置,表过时了

Web攻击

针对 Web 的攻击技术:

HTTP 不具备必要的安全功能:从整体上看,HTTP 协议机制在如会话管理(session)、加密处理等安全性的功能缺失; 在客户端即可篡改请求:通过 URL 查询字段或表单,HTTP 首部,Cookie 等途径把攻击代码传入。 针对 Web 应用的攻击模式:

以服务器为目标的主动攻击:攻击者通过直接访问 Web 应用,把攻击代码传入,主要来攻击服务器上的资源,常见的如 SQL 注入和 OS 命令注入; 以服务器为目标的被动攻击:利用圈套策略执行攻击代码的攻击模式,攻击者不直接对目标 Web 应用发起攻击(借刀杀人),主要攻击用户的资源和权限。通常的攻击模式如下: 在Web页面或邮件内设置陷阱 陷阱诱导 用户的浏览器触发事先已设好陷阱的 HTTP 请求 用户的浏览器运行攻击代码 执行攻击代码的后果是用户所持的 Cookie 等被窃取、用户权限遭到恶意滥用 被动攻击模式中具有代表性的攻击是跨站脚本攻击(XSS)和夸站点请求伪造(CSRF)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment