前端之旅:安全

这几天主要学习了JavaScript模块化的前世今生,工程化等方面知识,还包括安全防护、性能优化等方面知识,算是正式完成了IFE2015 spring task4,由于主要任务是优化,所以从软件界面上几乎没什么变化,不再截图。
由于每篇内容相对独立,所以上面所述方面的学习笔记,将分别记录在接下来的几篇博客中。

Web安全

浅谈Web安全性(前端向)

攻击种类

Web基本攻击大致可以分为三大类

  • 资源枚举
    别有用心的人会遍历你站点所有可访问的目录,然后把一些常见的备胎文件名(比如“sql.bak”、“index-副本.html”)一个个都枚举一下,如果运气好枚举到了就直接下载。
  • 参数操纵
    这里包括了SQL注入、XPath注入、cgi命令执行,还有XXS和会话劫持等。前三个的攻击主要是在服务端触发的,后二者的攻击则是侧重于客户端。
  • 其它攻击
    其它攻击包括有前面未提及的CSRF攻击、钓鱼攻击和拒绝服务攻击等。

攻击层面

常见的攻击层面有三种:

  • 传统WEB应用程序
    1. 表单输入
    2. cookie
    3. 报头
    4. 请求参数
    5. 上传文件
  • Web服务
    1. 上述“传统WEB服务”的全部方法;
    2. WSDL文档
  • AJAX应用程序
    即上述的“一”和“二”的合集

解决方案

综上所述,我们可以这样审视我们的WEB站点:

  1. 永远不要相信客户端传来的任何信息,对这些信息都应先进行编码或过滤处理;
  2. 谨慎返回用户输入的信息
  3. 使用黑名单和白名单处理(即“不允许哪些敏感信息”或“只允许哪些信息”,白名单的效果更好但局限性高);
  4. 检查、验证请求来源,对每一个重要的操作都进行重新验证;
  5. 使用SSL防止第三方监听通信(但无法阻止XSS、CSRF、SQL注入攻击);
  6. 不要将重要文件、备份文件存放在公众可访问到的地方;
  7. 会话ID无序化;
  8. 对用户上传的文件进行验证(不单单是格式验证,比方一张gif图片还应将其转为二进制并验证其每帧颜色值<无符号8位>和宽高值<无符号16位>);
  9. WSDL文档应当要求用户注册后才能获取;

虽然我们有一些必要的手段来防止WEB攻击,但永远不会有一枚silver bullet来彻底解决问题,先不谈那些数不胜数的已知的、可被攻击的漏洞,对于谜一样的0-day漏洞,我们所能做的只是提前发现并及时修补它们。

有关XSS

XSS的原理分析与解剖

  • 黑客对此漏洞的偏爱,原因不需要多,只需要一个:Xss几乎每个网站都存在,google、baidu、360等都存在。
  • 记住一句话“xss就是在页面执行你想要的js”

XSS的原理分析与解剖(第二篇)

常见XSS

  • 反射型XSS
  • 储蓄型XSS
  • DOM XSS
  • XSF(Flash XSS)
  • 挖掘XSS

XSS的原理分析与解剖:第三章(技巧篇)

  • 第三方劫持 (外调J/C):就是把资源域的服务器的权限拿下,替换相关资源,采用‘迂回式’的渗透方式。
    PS: J/C指的是javascript、css,不经常使用的就不说了。
  • XSS downloader(XSS下载器):这个技术其实就是把反射和储蓄结合起来,把核心代码写在网站上,然后以XSS触发并调用代码,实现攻击。
  • XCS:XCS就是利用浏览器来玩XSS,它的功能比普通上的XSS还要强大,因为利用浏览器协议漏洞,可以调用浏览器的API来实现下载覆盖本地文件(可以把它这个功能理解为挂马)。
  • 页面渲染XSS

XSS的原理分析与解剖:第四章(编码与绕过)

编码

  • URL编码
  • unicode编码
  • HTML编码
  • CSS编码

XSS防护

  1. 验证输入并且基于语境和按照正确的顺序转义不可信数据
  2. 始终遵循白名单优于黑名单的做法
  3. 使用 UTF-8 为默认的字符编码以及设置 content 为 text/html
  4. 不要将用户可以控制的文本放在标签前。通过使用不同的字符集注射可以导致XSS
  5. 使用<!DOCTYPE html>
  6. 使用推荐的 HTTP 响应头进行 XSS 防护
  7. 防止 CRLF 注入/HTTP 响应拆分
  8. 禁止 TRACE 和其他非必要方法

参考

http://www.2cto.com/article/201412/363743.html
http://www.freebuf.com/articles/web/40520.html
http://www.freebuf.com/articles/web/42727.html
http://www.freebuf.com/articles/44481.html
http://www.freebuf.com/articles/web/55505.html
http://www.freebuf.com/author/black-hole
http://www.fooying.com/chinese-translationthe-ultimate-xss-protection-cheatsheet-for-developers/
https://github.com/knownsec/KCon

avatar

神无

舍悟离迷,六尘不改。