Hi!请登陆

typecho添加php五秒盾,防御CC攻击!

2020-10-22 78 10/22

上次博客被攻击的时候,就提到了这个CC防御功能,但是我只讲了怎么引入。
typecho引入php五秒盾.zip这样的话,就是直接开启了cc五秒盾的效果,所有未cookies验证的用户全部被拦截了,很影响用户的体验。实际上typecho是可以实现控制的,比如在模板设置里增加对cc五秒盾的开关,我看wordpress很早就有了相关的支持,然而除了我们这些个开发模板的之外,对于新手而言是完全不知道怎么做的,所以有必要写一篇文章来水一水。

里面我提供的cc五秒盾文件,是网上流传很久的的代码,我根据百度得来的代码进行了补充,原本的策略只有cookies验证拦截,出现五秒盾,我在此基础上增加了对访问频率的识别跳转。所以现在的功能是,对访客的访问频率会先一步判断,根据用户自定义的范围,将频率过高的访客跳转向127.0.0.1,而没有达到频率的访客则会进行cookies验证,这样更大程序的对恶意流量攻击进行拦截,并且有效缓解了服务器的压力。

这样,还可以一定程度上拦截,攻击者伪装成的搜索引擎蜘蛛。

我建议的是,在没有被攻击的情况下,为了用户体验和搜索引擎的抓取,不要进行开启。同时服务器如果是linux的话,配合cckiller脚本两个一起,效果会更好。

废话不多说,教程开始:

1.下载我整理好的zip文件,解压后将里面的cc.php扔到typecho的模板目录。
typecho引入php五秒盾.zip

2.修改模板的function.php,在themeConfig方法内,增加如下代码。

$CC= new Typecho_Widget_Helper_Form_Element_Radio('CC',array('1' => _t('关闭五秒盾'),'2' => _t('开启五秒盾')),'1',_t('PHP五秒盾'),_t("开启后对恶意访客进行拦截,在遭受流量攻击后有一定的防御效果,为了用户体验正常情况请关闭。"));
$form->addInput($CC);

到这一步,点击设置外观,就可以看到控制选项了。

3.修改模板的header.php,在顶部的第二行添加如下代码。

<?php if ($this->options->CC == '2'): ?>
<?php include 'cc.php'; ?>
<?php endif; ?>

在第二步中,模板实现控制后,就可以保存$CC这个php字段的值,所以前台就能将这个值拿出来,进行判断是否引入cc.php,就这样实现了开关控制。

以上就是typecho使用cc五秒盾的过程,但是值得注意的是,应对cc攻击最好的办法仍然是一台性能吊的服务器,配套极强的内部安全策略,我这里提供的办法仅仅可以拦截小程度的攻击,而且仍然需要手动开启,所以一般是被打了之后才能去开,造成了许多的麻烦。

相关推荐