XSS攻击(跨站脚本攻击):
恶意web用户将代码植入到提供给其他用户使用的页面,比如代码中包含html代码和客户端脚本。过于信任客户端提交的数据。
特点:能注入恶意的HTML或JavaScript代码到用户浏览的页面上,从而达到Cookie资源窃取、会话劫持、钓鱼欺骗等攻击。
防护:
- 将重要的cookie设置为httpOnly,禁止用ducument.cookie操作;
- 表单数据规定值的类型;
- 输入检查:在用户输入的时候进行格式检查;
- 过滤和移除特殊的html标签
<script><iframe>
,过滤javascript事件标签。
CSRF攻击(跨站点请求伪造):
在第三方网站,欺骗用户的浏览器,发送http请求给目标站点。伪装受信任用户,发送恶意请求(身份验证信息cookie自动携带)
XSS与CSRF的区别:XSS是利用站点内的信任用户;CSRF是通过伪装来自受信任用户的网站。
特点:依靠用户标识危害网站,利用网站对用户标识的信任。
防护:
- 设置白名单;
- 限制不被第三方网站请求;
- 检查referer字段:这个字段表明请求来源。(正常请求的源地址和非正常请求的地址不同)
- 添加校验Token。
token:服务端生成的一个字符串,存在session中,并返回给作客户端作为进行请求的一个令牌,进行身份验证。token存储在cookie或者localStorage(但容易被xss攻击)中,前端发送请求可以把token放在cookie或者请求头中,请求时以参数的形式发送到后端进行验证。对于GET请求可以放在url上,对于POST请求,可以在表单中加入token。或者在每次页面加载时,使用 javascript 遍历整个 dom 树,对于 dom 中所有的 a 和 form 标签后加入 token。
SQL注入攻击:
将一些恶意SQL执行命令伪装成SQL参数传给DBMS,执行恶意攻击。
防护:
- 使用预编译语句
- 必要的加密
DDOS攻击(分布式拒绝服务攻击):
利用信任的客户端向服务端频繁发送请求,从而达到服务器处理不过来,请求超时。
基本两种形式:
1、资源消耗:分布式请求占用带宽资源。
2、服务消耗:疯狂请求占用服务器计算资源。
防护:
1、配置大量服务器和带宽资源;
2、大数据智能分析,白名单过滤;