xiaomibaobao

XSS攻击与防范

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。

简介

  • 什么是XSS攻击
  • 什么情况下存在XSS漏洞
  • XSS攻击的分类
  • 举几个例子
  • XSS攻击的危害
  • 如何防御XSS攻击

什么是XSS攻击

  • XSS攻击:跨站脚本攻击(Cross Site Scripting)
  • 所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞

XSS攻击的分类

  • 基于DOM
  • 反射式
  • 存储式

情景分析

  • 某url为:www.abcd.com/e/f?content=
  • content的值:

相关事件

  • 2011年新浪微博受XSS攻击事件
  • XSS过滤不严密—>被黑客发现—->发微博,微博内容创建标签植入脚本
    —>页面执行脚本内容—>凡是访问本微博内容所在页面的用户,受到攻击
    攻击源代码:

    http://blog.csdn.net/heigger/article/details/6573904

实例

flash XSS

  • 木有用过flash
  • 这个真么有研究过
  • 待续

危害

  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具有商业价值的资料
  • 网站挂马

防御

  • 可靠的输入验证
  • 实现Session标记(session tokens)或者HTTP引用头检查,防止被第三方网站所执行
  • 接收的的内容被妥善的规范化
  • HTTP only的cookie
  • 对标签字符进行转码
  • 设备软件更新
  • 借助可靠工具,进行站内扫描(例如阿里云扫描)

html转码方式

  • 用浏览器内部转换器实现html转码
  • str—>innerText || textContent —>innerHTML
  • 用正则表达式进行转换处理
  • 将>,<,’ ‘,’”‘,&等转义

安全性相关的http头

  • Strict-Transport-Security:强制使用安全连接(SSL/TLS之上的HTTPS)来连接到服务器。
  • X-Frame-Options:提供对于“点击劫持”的保护。
  • X-XSS-Protection:开启大多现代浏览器内建的对于跨站脚本攻击(XSS)的过滤功能。
  • X-Content-Type-Options: 防止浏览器使用MIME-sniffing来确定响应的类型,转而使用明确的content-type来确定。
  • Content-Security-Policy:防止受到跨站脚本攻击以及其他跨站注入攻击。

node.js安全清单

1
2
3
4
var express = require('express');
var helmet = require('helmet');
var app = express();
app.use(helmet());
  • helmet包含11个设置HTTP请求头的中间件,但并非都默认配置
如果我实实在在的帮到您,可以点击打赏,请我喝一杯。