宝塔面板如何设置防cc攻击?cc攻击是攻击者借助代理服务器生成指向受害主机的合法请求,实现ddos和伪装。宝塔面板想要设置防cc攻击,可通过以下策略。
redis + 验证码 + 策略 防cc
采用redis高性能数据库,合理的访问策略验证并在超大攻击时开启验证码访问。让网站远离cc
1.安装redis,在宝塔软件管理找到,安装;
2.安装php redis扩展,你用哪个php就安装哪个php的扩展,别装错了;
3.在网站入口,如wordpress的index.php 头部加入如下代码:
header('content-type: text/html; charset=utf-8'); //emlog原有代码,复制下列代码放在下面
//cc攻击停止后会尽快解除验证码,回到正常状态
//防cc配置$ipmax = 30; //开启验证码条件 值>=php最大进程数,适当设置更大会降低验证码触发条件,但会增大502错误几率(php挂起)
$ipfor = 60; //周期 这个值基本不用动
$ipban = 60; //扔入黑名单 60秒内访问超过60次即拉黑ip
$bantime = 3600*24; //黑名单时长 扔小黑屋时长,这种代理ip放一天感觉都少了 = =!
$ip = ip();
//连接本地的 redis 服务$redis = new redis();$redis->connect('127.0.0.1', 6379);
//拦截黑名单if($redis->exists($ip.'ban')){
exit('您被关进了小黑屋,黑白网丨heibai.org');}
//扔黑名单检测if($redis->get($ip.'ok') >= $ipban){
$redis->setex($ip.'ban', $bantime, '1');}
if($redis->exists($ip.'ok')){
$redis->incrby($ip.'ok',1); //记录ip 自增1}else{
$redis->setex($ip.'ok',$ipfor,1);}
//按需开启防cc 小黑屋ip不会触发该条件,所以当一段时间以后就会解除验证码。除非攻击者换一批代理继续攻击。如此往复if(count($redis->keys(*ok)) > $ipmax){
//验证
if($_cookie['key'] == ''){
if($_get['cc']){
$key = md5($ip.$_get['cc']);
setcookie(key,$key);
}
}
//拦截代码
if($_cookie['key'] && $_cookie['cc'] && $_cookie['key'] == md5($ip.$_cookie['cc'])){
//通过
}else{
if($_get['cc']){
$key = md5($ip.$_get['cc']);
setcookie(key,$key);
}else{
$cc = rand(1000,9999);
setcookie(cc,$cc);
//这里只是简单的构造了一下验证码,有能力可以自己更改的更安全和完美。
echo '<!doctype html>
<html>
<body>
<form action=>请输入:'.$cc.' :<input type=text name=cc value=><input type=submit value=继续访问></form>
<p>访问异常,请输入验证码。</p>
</body>
</html>';
}
exit();
}}function ip() {
if(getenv('http_client_ip') && strcasecmp(getenv('http_client_ip'), 'unknown')) {
$ip = getenv('http_client_ip');
} elseif(getenv('http_x_forwarded_for') && strcasecmp(getenv('http_x_forwarded_for'), 'unknown')) {
$ip = getenv('http_x_forwarded_for');
} elseif(getenv('remote_addr') && strcasecmp(getenv('remote_addr'), 'unknown')) {
$ip = getenv('remote_addr');
} elseif(isset($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], 'unknown')) {
$ip = $_server['remote_addr'];
}
$res = preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
return $res;}西部数码的云服务器提供预装好宝塔linux面板的系统模板,可直接安装使用,十分方便。
购买西部数码云计算服务器可以自主选择是否开通cc防护功能。西部数码云主机租用智能、电信、香港高防线路均支持cc防护。支持cc攻击防护的云服务器产品链接 https://www.west.cn/cloudhost/
云计算有哪些证书阿里云服务器ecs如何提交续费主机续费失败-虚拟主机/数据库问题经典品牌如何年轻化?《开心消消乐》X《愤怒的小鸟2》全新合体……url与域名的区别是什么360浏览器如何录屏 360浏览器自带录屏的使用步骤高效运营小程序打造私域流量在线支付功能怎么不能用-备案平台