最近一段时间很多使用pbootcms建设的网站都遭遇到了首页挂马的问题,表现形式便是首页页面增加了很多?id=123,?/?id=37087875.csv,?id=26993492.shtml等等形态.当我们查看后台系统日志中的蜘蛛访问或者首页上多了这些链接的时候,基本上就是被挂马了,这个时候我们需要及时作出处理要不然就容易被百度降权甚至严重的时候会被关站(个别链接跳转到了非法网站,如果不及时处理那么也会承受一定的责任的)。备注:本次挂马应该是程序自动挂马,很多使用pbootcms的网站都在短时间范围内受到了攻击。
处理步骤:
1)替换apps以及core文件,如果本地没有备份保存,那么可以选择升级到最近版本,目前官方也根据这个问题进行了更新处理.
2)修改robots.txt文件添加针对首页问题的拒绝访问规则
# Robots for 371302.cn (临沂建站网)
Disallow: /admin/*
Disallow: /skin/
Disallow: /template/
Disallow: /static/*
Disallow: /api/*
Disallow: /?*
3)修改源码,在apps/home/controller/IndexController.php文件中添加针对首页带参数问题的处理.代码大概在200行以后找到//一级目录这里,在上方添加
if(strstr(URL,"?")){
_404('您访问的路径错误,请核对后重试!');
}
if(SITE_DIR == ''){
if(strstr(URL,"?")){
_404('您访问的路径错误,请核对后重试!');
}
//一级目录
$this->urlJump($url_rule_type,false);
} else {
//二级目录
$this->urlJump($url_rule_type,true);
}
//备注:我后面发现个别低版本的好像没有if(SITE_DIR == ''){开头的这里,那么就需要自己主动添加上判断语句才可以
如下:在这里的后方加上else流程,进入主页流程的操作,同时加上urlJump方法(或者升级到最新版本以后再进行修改)
urlJump方法
//首页跳转并过滤注入字符
/*
* @param $type url模式
* @param $isSecSiteDir 是否为二级目录 boolean
* */
private function urlJump($type, $isSecSiteDir){
$http = is_https() ? 'https://' : 'http://';
$matches1 = '';
switch ($type){
//普通模式
case 1:
$preg1 = '';
if($isSecSiteDir === true){
if($_SERVER['REQUEST_URI'] == SITE_DIR . '/index.php'){
$preg1 = '/^\/.*?\/index.php/';
} elseif($_SERVER['REQUEST_URI'] == '/index.php'){
$preg1 = '/^\/index.php/';
}
} else {
$preg1 = '/^\/index.php/';
}
preg_match($preg1,$_SERVER['REQUEST_URI'],$matches1);
break;
//伪静态
case 2:
$preg2 = '';
if($isSecSiteDir === true){
if($_SERVER['REQUEST_URI'] == SITE_DIR . '/'){
$preg2 = '/^\/.*/';
} elseif($_SERVER['REQUEST_URI'] == '/'){
$preg2 = '/^\/$/';
}
} else {
$preg2 = '/^\/.*/';
}
preg_match($preg2,$_SERVER['REQUEST_URI'],$matches1);
break;
//兼容模式
case 3:
$preg3 = '';
if($isSecSiteDir === true){
if(strpos($_SERVER['REQUEST_URI'], SITE_DIR) === 0){
$preg3 = '/(^\/.*?\/index.php)|(^\/.*)/';
} elseif(strpos($_SERVER['REQUEST_URI'], '/') === 0){
$preg3 = '/(^\/index.php)|(^\/)/';
}
} else {
$preg3 = '/(^\/index.php)|(^\/)/';
}
preg_match($preg3,$_SERVER['REQUEST_URI'],$matches1);
break;
}
if($matches1[0]){
if($_SERVER['REQUEST_URI'] == $matches1[0]){
$this->getIndexPage();
} else {
header("Location: " . $http . $_SERVER['HTTP_HOST'] . $matches1[0], true, 301);
}
} else {
_404('您访问的页面不存在,请核对后重试!');
}
}
通过以上三步基本上就可以杜绝本次批量被挂马的问题,后续就是要加强服务器上的安全验证的问题了.
=======================分割线
如果配合使用我这边的静态化插件也是一种解决方法,当然使用静态化插件比较适合资讯等数据量比较大的站点使用。
————————————————
版权声明:本文为CSDN博主「繁华pk落幕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014401637/article/details/127997346
扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答:网站建设-网站优化-小程序开发等
非常感谢您有耐心的读完讯展科技分享的这篇文章:"pbootcmS建设的网站首页被挂马怎么处理?",此信息仅供用户参考使用或为学习交流的方便,如果大家还对相关的内容感兴趣,请持续关注。讯展科技专业提供:网站建设、网站制作、seo网站优化、网站推广、小程序开发、快速排名、网络营销策划,品牌营销推广等服务,我们坚持为用户提供有价值的产品和服务,效果为王,帮助客户成功就是我们的成功,我们诚挚为您服务,欢迎您的来电咨询。
本文标题:pbootcmS建设的网站首页被挂马怎么处理? 地址:https://yun.xunzhankj.comhttps://yun.xunzhankj.com/news-5/521.html
Tag:
pbootcmS建设的网站首页被挂马怎么处理