前端攻击
XSS
跨站脚本攻击,由插入页面处理的数据未经处理导致。
- 存储型
XSS
:提交的数据未经处理存储到数据库中,然后从数据库中获取数据插入页面导致的 - 反射型
XSS
:通过URL
提取参数未经处理直接插入到页面导致 MXSS
:渲染DOM
时插入了攻击脚本(模板渲染)
通过字符转义的方式把特殊的符号转化为安全的 HTML
字符(如 <、>等)
SQL
注入攻击
结构性查询语言注入攻击,页面提交的数据直接拼接到 SQL
语句进行操作导致,通过对查询数据进行合法性校验即可避免
CSRF
跨站请求伪造,非源站点按照源站点数据格式提交非法数据给源站点的一种攻击方式。大部分网站是通过 COOKIE
的方式来验证登录的用户信息,由于浏览器的策略导致请求时会自动携带相关 COOKIE
,当非源站点请求源站点数据时也会携带相关 COOKIE
,此时构造一个非法的请求也会请求成功。解决办法就是通过在页面中预先植入 TOKEN
,在接口请求时再手动携带上相关的值,由于浏览器的安全策略限制非源站点无法读取相关数据进而导致请求失败
网络劫持
网络资源请求在请求过程中因为人为的攻击导致没有加载到预期的资源内容。
DNS
劫持
攻击者通过篡改 DNS
服务器的域名解析记录,导致用户无法访问正确的网络 IP
,而是访问篡改后的错误 IP
地址。
HTTP
劫持
在用户浏览器和访问的目的服务器之间建立的网络数据传输通道中从网关或防火墙层上监视特定的数据信息,当满足特定条件时,就会在正常的数据包中插入或篡改网络数据包(如 ISP
在部分第三方网站页面中植入广告)。可以通过 HTTPS
协议来预防
浏览器 WEB
安全控制
X-XSS-Protection
防止反射型 XSS
问题的发生,浏览器层面增强前端网页的安全性。
1 | X-XSS-Protection: 0 # 禁止XSS过滤。 |
Strict-Transport-Security
配置浏览器和服务器之间安全通信的机制,防止中间者攻击(强制使用 HTTPS
协议,普通协议无效)
1 | Strict-Transport-Security: max-age=<expire-time> # 设置在浏览器收到这个请求后的<expire-time>秒的时间内凡是访问这个域名下的请求都使用HTTPS请求。 |
Content-Security-Policy
开发者定义的安全策略性声明,浏览器只可以加载指定可信域名来源的内容(包括脚本、图片、iframe
、font
、style
等)
Access-Control-Allow-Origin
决定哪些网站可以访问当前服务器资源,通过定义通配符可以让所有网站来访问当前网站的所有资源。若 Access-Control-Allow-Origin
为 *
,则 Access-Control-Allow-Credentials
无效。若想 Access-Control-Allow-Credentials
有效(即请求携带 Cookie
),则必须明确配置来源。