web网络安全
xss攻击 (Cross Site Scripting攻击,跨站脚本攻击)
- 反射型:所谓反射型,得用户去触发,那得先注入,注入得通过页面劫持或者不法数据返回,所以不明白这是咋分成反射型的,和其他方式关联极大
- 账号密码
- 表单方式提交: 输入js代码,表单没做过滤转义,因为是get请求,会显示在浏览器地址栏,部分老旧浏览器不自动转义,会直接执行js代码
- 账号密码
- 存储型
- 评论区、文章类
- 表单或者其他带参数提交:输入js或者有执行js能力的标签代码块,提交没做过滤转义,服务端接收和返回都没做处理,返回给页面,页面做读取渲染,像渲染script标签,执行其内代码、a标签,点击执行相应代码或者跳转某个地方
- 评论区、文章类
防御方式
- 前端入参字符转义过滤,服务端入参过滤
- 服务器端返回前过滤或者转义
- 长度限制
- cookies设置httponly为true,让js无法获取
- csp(Content-Security-Policy),设置http头部,或者在meta头带入
csrf攻击 (Cross-site request forgery, 跨站请求伪造)
通过存储在cookies里的信息,请求自动带上,校验身份
- 在只有cookies鉴权时,用户a登入网站A,拿到鉴权信息后,点进了用户b引诱的网页B,B内向网站A的服务发送了恶意请求,因为请求网站A时自动带上鉴权信息,所以请求能通过
防御方式
- 验证 HTTP Referer 字段。判断请求来源
- 添加请求参数双重验证
- 在 HTTP 头中自定义属性并验证
- cookie设置SameSite,只能url和请求url同样时才带上cookies
- 验证码图片相关
sql注入
利用服务端代码漏洞,注入可执行SQL代码,服务端读取时没做相关处理,导致这段SQL命令
防御方式
- 长度限制
- 关键字过滤转义
- 不直接返回显示错误原因
- 预编译防注入
JStar