web 安全

一、XSS (cross site script)跨站脚本攻击

首字母"X"是因为 CSS 会与层叠样式表的英文相同所以改用XSS简称。

(一)攻击方式
  1. 诱导链接(反射型攻击)
    攻击方式: 简单的说比如诱导用户打开一个连接,通过连接携带参数可执行脚本,而攻击者知道我们的代码方式,在页面能够执行或渲染,伪造可执行代码窃取用户信息(cookie等本地存储的信息),
    通过注入代码:
    ① 比如url访问 www.mydomain.com/ad?p=
    ② 恰巧程序代码里面有使用这个p参数做代码执行或渲染,, 此处关键代码是document.cookie, 攻击者可以在打开页面后,获取用户的cookie, 把cookie字符串提交到自己指定的服务器获得cookie数据。
    2.表单提交数据库存储,直出渲染
    web端通过表单元素输入可执行的脚本内容提交数据库存储。 前端与后端都“未做字符转义”的话,存储在数据的字符,在返回到html页面执行渲染时就会被执行,从而导致客户端用户本地数据泄露
(二)XSS (cross site script)跨站脚本防御
  1. CSP (Content-security-Policy) 网页安全政策, 白名单形式
    设置content-security-policy的方式有两种:
    (1) http header 属性 content-security-policy;
    ① 限制资源加载
    content-security-policy:
    script-src:外部脚本
    style-src:样式表
    img-src:图像
    media-src:媒体文件(音频和视频)
    font-src:字体文件
    object-src:插件(比如 Flash)
    child-src:框架
    frame-ancestors:嵌入的外部资源(比如、