当前位置:网站首页 >  百科

织梦CMS跨站攻击防护全实操指南 零门槛配置可直接落地复用

时间:2026年06月13日 05:37:57 来源:易频IT社区

前置准备

操作前先完成2项准备,避免配置错误导致站点故障:

  • 备份全站文件,重点备份/include/目录、所有plus入口文件
  • 备份全站数据库,可直接在织梦后台-系统-数据库备份/还原操作
  • 适用范围:织梦V57 UTF8/GBK全版本,其他版本逻辑一致可参考

第一步:全局参数过滤配置

1.1 新增通用XSS过滤函数

找到/include/common.func.php文件,在文件末尾的?>之前插入以下可直接复用的过滤代码:

```php function dede_xss_clean($str) { // 移除空字节注入风险 $str = str_replace("\0", '', $str); // 全局转义HTML实体,避免标签解析 $str = htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); // 过滤所有危险主动执行标签 $pattern = '/<(script|iframe|link|meta|style|object|embed|svg|on\w+)[^>]>/i'; $str = preg_replace($pattern, '', $str); // 过滤伪协议执行风险 $str = preg_replace('/(javascript|vbscript|data):/i', '', $str); return trim($str); } ```

1.2 全局变量自动过滤

找到/include/common.inc.php文件,定位到//检查和注册外部提交的变量注释的下方,插入以下代码:

```php // 全局XSS过滤 排除后台文章编辑器content字段 $filter_except = array('content'); $request_arr = array('_GET', '_POST', '_COOKIE'); foreach($request_arr as $req) { foreach($$req as $key => $val) { if(!in_array($key, $filter_except)) { if(is_array($val)) { foreach($val as $k => $v) { ${$req}[$key][$k] = dede_xss_clean($v); } } else { ${$req}[$key] = dede_xss_clean($val); } } } } ```

注意:如果你的后台目录不是默认的/dede,需要在过滤逻辑前增加后台路径判断,避免影响后台其他功能使用

第二步:前端提交入口专项防护

2.1 会员投稿入口防护

找到/plus/contribute.php/member/article_add.php/member/article_edit.php三个文件,在接收提交参数的位置,对所有非content字段新增过滤,示例代码:

```php $title = dede_xss_clean($title); $writer = dede_xss_clean($writer); $source = dede_xss_clean($source); $description = dede_xss_clean($description); $tags = dede_xss_clean($tags); ```

2.2 交互入口防护

找到/plus/feedback.php(评论)、/plus/guestbook.php(留言板)两个文件,所有用户提交的字段(用户名、内容、联系方式等)全部套入dede_xss_clean()过滤,不设置任何例外字段。

2.3 搜索入口防护

找到/plus/search.php文件,定位到搜索关键词$q的定义行,新增过滤:$q = dede_xss_clean($q);,同时搜索结果页模板的{$q}输出不要做任何反转义处理。

第三步:路径与权限加固

3.1 修改默认后台路径

织梦CMS跨站攻击防护全实操指南 零门槛配置可直接落地复用

直接将根目录下默认的/dede目录重命名为6位以上的随机混合字符串,比如dede_7x2k9z禁止使用admin、manage、houtai等常见名称,避免被暴力枚举

3.2 限制后台访问IP

如果是Nginx服务器,在站点配置的server块中插入以下配置:

```nginx location ~ ^/修改后的后台目录名/ { allow 你的办公固定公网IP; allow 127.0.0.1; deny all; } ```

如果是Apache服务器,在后台目录下新建.htaccess文件,写入以下内容:

```apache Order Deny,Allow Deny from all Allow from 你的办公固定公网IP Allow from 127.0.0.1 ```

3.3 关闭未使用的风险入口

如果不需要使用会员、投稿、留言板功能,直接在后台-系统-系统基本参数-核心设置中关闭对应功能,同时直接删除/plus目录下的contribute.phpfeedback.phpguestbook.php三个文件,从源头关闭风险。

第四步:补丁与日常巡检配置

4.1 安装官方最新补丁

直接访问织梦官方补丁页下载对应版本补丁:http://updatenew.dedecms.com/base-v57/ ,下载后直接覆盖到站点对应目录即可。

4.2 上传目录权限加固

所有用户可上传的/uploads目录必须设置禁止执行PHP脚本权限,Nginx配置如下:

```nginx location ~ ^/uploads/.\.(php|php5|phtml)$ { deny all; } ```

Apache服务器在uploads目录下新建.htaccess文件,写入:

```apache Order Allow,Deny Deny from all ```

4.3 日常巡检规则

  • 每周检查一次后台访问日志,排查陌生IP访问记录
  • 每周扫描一次uploads目录,排查是否存在php、js、html等非媒体格式文件
  • 每月更新一次官方补丁,避免已知漏洞被利用
  • 如果发现被攻击,先断网回滚到最近备份,用D盾扫描全站排查后门,D盾官方下载地址:http://www.d99net.net/

配置验证方法

完成所有配置后做3项测试,全部通过则配置生效:

  • 在站点搜索框输入提交,没有弹出弹窗,只显示转义后的纯文本即生效
  • 在投稿/评论框输入提交,内容中没有iframe标签即生效
  • 在uploads目录上传一个测试php文件,浏览器直接访问返回403错误即权限配置生效

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图