Apache:避免点击劫持(Clickjacking)和Slowloris攻击

在这篇文章里,我们来讨论一下点击劫持和Slowloris拒绝服务攻击,并且学习怎么防止这两种攻击方式。我使用的是CentOS-Apache环境。

点击劫持(Clickjacking)

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

Slowloris攻击

SlowLoris攻击是一种DOS(拒绝服务攻击)的一种,它是针对Apache的一种慢速攻击方式,通过该种方法可以导致Apache拒绝服务。攻击者建立和服务器的连接,并且保持这个连接,不释放,直到达到最大连接数限制。结果是,正常用户因为服务器资源耗尽而不能正常访问。


避免点击劫持

怎么在Apache上把点击劫持攻击的风险降到最低呢?

X-Frame是Apache用来阻止攻击者使用Clickjacking攻击的选项参数。最重要的一点是理解这个参数在背后做了什么。上面说了,攻击者把一些内容隐藏在图像、frame的后面,启动X-Frame会禁止隐藏内容的激活。使用如下命令检查apache是否设置X-Frame参数:

在输出的http头中是否有“X-Frame“选项;如果没有的话,你的web服务器容易受点击劫持影响。添加方法是,编辑Apache的配置文件,添加如下一行:

重启Apache,再次查看http头,看看是否有如下内容:

如果有,恭喜你,现在你的web服务器基本免疫了点击劫持攻击。

避免SlowLoris攻击

这一步阻止SlowLoris DOS攻击。有几种方式可以防止SlowLoris攻击,我们使用最重要的一个:QOS模块。编辑apache配置文件,添加QOS模块的配置,如下:

Screen Shot 2016-03-11 at 16.46.07

参数解释:

  • QS_ClientEntries:最多处理的连接数
  • QS_SrcMaxConnPerIP:限制一个IP地址最多建立50个连接,超过50个会屏蔽。根据你的实际情况修改
  • MaxClients:最多256 TCP连接
  • QS_SrvMaxConnClose:当一个连接超过180秒,关闭KeepAlive
  • QS_SrvMinDataRate:设置最少150 bytes每秒每连接,达到MaxClients限制,1200 bytes每秒每连接

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注