攻击技术

XSS 跨站脚本攻击

原理

  • 恶意攻击者将代码通过网站注入到其他用户浏览器中的攻击方式。
  • 攻击者会把恶意JavaScript 代码作为普通数据放入到网站数据库中;
  • 其他用户在获取和展示数据的过程中,运行JavaScript 代码;
  • JavaScript 代码执行恶意代码(调用恶意请求,发送数据到攻击者等等)。

防御

根本的解决方法:从输入到输出都需要过滤、转义。

  1. 对重要的 cookie设置 httpOnly, 防止客户端通过document.cookie读取 cookie,此 HTTP头由服务端设置。

  2. 关键字符过滤,从而避免 HTML 和 Jascript 代码的运行。

CSRF 跨站请求伪造

恶意攻击者在用户不知情的情况下,使用用户的身份来操作

原理

  • 黑客创建一个请求网站A 类的URL 的Web 页面,放在恶意网站B 中,这个文件包含了一个创建用户的表单。这个表单加载完毕就会立即进行提交。
  • 黑客把这个恶意Web 页面的URL 发送至超级管理员,诱导超级管理员打开这个Web 页面。

防御

token 校验

最常用的一种是通过token去校验请求是否合法:

在访问敏感数据请求时,要求用户浏览器提供不保存在 Cookie 中,并且攻击者无法伪造的数据作为校验。例如服务器生成随机数并附加在表单中,并要求客户端传回这个随机数。

检查 Referer 首部字段

用于标识请求来源的地址。检查这个首部字段并要求请求来源的地址在同一个域名下,可以极大的防止 CSRF 攻击。

输入验证码

因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。

SQL注入攻击

SQL 注入漏洞: 攻击者直接对网站数据库执行任意SQL语句,在无需用户权限的情况下即可实现对数据的访问、修改甚至是删除。

防御

注意避免拼接字符串

部分ORM框架自带防御

拒绝服务攻击

拒绝服务攻击(denial-of-service attack,DoS),亦称洪水攻击,在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。

分布式拒绝服务攻击(distributed denial-of-service attack,DDoS),指攻击者使用两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击。

防护措施

HTTP 请求的拦截

恶意请求都是从某个 IP 段发出的,那么把这个 IP 段封掉就行了。或者,它们的 User Agent 字段有特征(包含某个特定的词语),那就把带有这个词语的请求拦截。可以使用本机防火墙或者Web服务器拦截

带宽扩容

正的 DDOS 攻击是没有特征的,它的请求看上去跟正常请求一样,而且来自不同的 IP 地址,所以没法拦截。

CDN

网站的静态内容分发到多个服务器,用户就近访问,提高速度。因此,CDN 也是带宽扩容的一种方法,可以用来防御 DDOS 攻击。

网站内容存放在源服务器,CDN 上面是内容的缓存。用户只允许访问 CDN,如果内容不在 CDN 上,CDN 再向源服务器发出请求。这样的话,只要 CDN 够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求。

其他

1、降低SYN timeout时间,使得主机尽快释放半连接的占用
2、采用SYN cookie设置,如果短时间内连续收到某个IP的重复SYN请求,则认为受到了该IP的攻击,丢弃来自该IP的后续请求报文
3、使用防火墙或者代理设备,缓冲SYN洪泛攻击


   转载规则


《攻击技术》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
docker必知必会 docker必知必会
docker重要知识点
2021-07-07
下一篇 
操作系统必知必会 操作系统必知必会
操作系统操作系统是管理计算机硬件与软件资源的程序,本质上是运行在计算机上的软件程序 ,为用户提供一个与系统交互的操作界面 , 分内核与外壳,外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序。 32位系统进程可分配内存创建一个进程时
2021-06-30
  目录