DoraCMS安全防护实战:纵深防御与NoSQL注入防范
1. 项目概述为什么DoraCMS需要一套专属的安全防护策略最近在帮几个使用DoraCMS搭建内容站点的朋友做安全审计发现一个挺普遍的现象很多开发者觉得DoraCMS本身是一个成熟的开源系统只要及时更新到最新版本安全就高枕无忧了。但实际情况是我们部署的服务器环境、安装的第三方插件、甚至是自己写的一小段自定义代码都可能成为攻击者眼中的“后门”。一次成功的SQL注入或XSS攻击轻则导致网站被挂马、数据被篡改重则服务器沦为“肉鸡”整个数据库被拖走。这绝不是危言耸听我亲眼见过一个日PV不过万的企业站因为一个陈旧的插件漏洞被植入了挖矿脚本CPU长期跑满最后不得不重装系统。所以今天我想聊的不是泛泛而谈的“Web安全原则”而是聚焦于DoraCMS这一特定技术栈从实战角度出发梳理出一套可落地、能闭环的防护策略。DoraCMS基于Node.js和MongoDB这决定了它的安全攻防点与传统PHPMySQL的CMS如WordPress有显著不同。攻击者会重点寻找Node.js生态中常见的漏洞如原型链污染、依赖包漏洞以及MongoDB特有的NoSQL注入点。我们的防护策略也必须“对症下药”。这套最佳实践的目标很明确为中小型DoraCMS站点构建纵深防御体系有效抵御OWASP Top 10中常见的Web攻击如注入攻击、跨站脚本XSS、跨站请求伪造CSRF等同时兼顾性能与易用性。无论你是DoraCMS的运维人员、二次开发开发者还是项目负责人都能从中找到可以直接应用到生产环境的配置和代码。2. 安全防护的核心设计思路纵深防御与最小权限在动手配置任何安全规则之前我们必须先建立正确的安全观。对于DoraCMS这类动态网站我推崇“纵深防御”和“最小权限”两大原则。纵深防御好比你家不仅装了防盗门防火墙还在客厅、卧室安装了摄像头和传感器应用层监控贵重物品锁进保险柜数据加密。攻击者突破一层还有下一层等着他。对应到DoraCMS网络层使用云服务商的安全组或防火墙严格限制入站端口通常只开放80/443。服务器层操作系统定期更新非root用户运行Node.js进程配置严格的文件权限。应用层DoraCMS本身这是我们的主战场包括输入验证、输出编码、会话管理、安全的数据库查询等。数据层MongoDB的访问控制、数据加密如有敏感信息。监控与响应层日志审计、入侵检测、定期漏洞扫描。最小权限原则要求每个组件、每个用户只拥有完成其任务所必需的最低权限。例如连接MongoDB的DoraCMS应用账号不应该拥有dbAdmin或root权限通常只赋予对特定数据库的readWrite权限。基于这个思路我们的防护策略将不局限于DoraCMS的代码修改而是涵盖系统环境、DoraCMS配置、代码实践、运维监控四个层面形成一个立体的防护网。2.1 理解DoraCMS的安全特性与潜在风险点DoraCMS本身在安全方面做了一些基础工作比如使用helmet中间件来设置一些安全的HTTP头对部分输入进行了校验。但我们不能完全依赖框架。我们需要主动识别风险模板引擎EJS的XSS风险DoraCMS使用EJS渲染前端页面。如果直接将未经处理的用户输入如评论内容、文章标题用% %输出极易导致XSS。虽然EJS默认对% %进行HTML转义但使用%- %原始输出时风险极高。MongoDB查询注入风险这不是传统的SQL注入而是“NoSQL注入”。例如登录接口接收JSON参数{“username”: “admin”, “password”: “123”}。如果后端这样查询User.findOne({username: req.body.username, password: req.body.password})攻击者可能发送{“username”: {“$ne”: null}, “password”: {“$ne”: null}}导致查询条件被篡改绕过认证。依赖包安全风险Node.js项目依赖大量第三方包npm。这些包可能含有已知漏洞。DoraCMS的package.json锁定了版本但长期不更新漏洞风险会累积。文件上传漏洞虽然DoraCMS有上传功能但如果校验不严仅前端校验、未校验文件类型头、上传路径可遍历攻击者可能上传Webshell如.jsp、.php文件在特定服务器环境下执行或恶意脚本。会话与认证安全默认的会话管理是否安全Cookie是否设置了HttpOnly和Secure密码是否加盐哈希存储注意安全是一个动态过程没有一劳永逸的方案。今天的最佳实践明天可能因为新漏洞的出现而失效。因此持续监控和更新是安全策略不可或缺的一部分。3. 系统与环境层加固构筑第一道防线在DoraCMS代码运行之前我们需要确保它的“家”是坚固的。很多低级错误都发生在这个层面。3.1 服务器操作系统与网络配置非Root用户运行为什么使用root权限运行Node.js应用一旦应用被攻破攻击者就获得了服务器最高权限。怎么做# 创建一个专门用于运行DoraCMS的系统用户例如 doracms sudo useradd -r -s /bin/false doracms # 将DoraCMS项目目录的所有权赋予该用户 sudo chown -R doracms:doracms /path/to/your/doracms # 使用PM2等进程管理器时以该用户身份启动 sudo pm2 start server.js --name doracms --user doracms实操心得文件上传目录如/public/upload需要给doracms用户写权限但应严格限制其执行权限chmod 755。防火墙安全组配置最佳实践只开放必要的端口。对于Web服务通常仅开放80HTTP和443HTTPS。SSH端口22应限制仅允许特定IP访问或改为非标准端口。云服务器示例以阿里云安全组为例规则方向授权策略协议类型端口范围授权对象说明入方向允许HTTP(80)80/800.0.0.0/0公网HTTP访问入方向允许HTTPS(443)443/4430.0.0.0/0公网HTTPS访问入方向允许SSH(22)22/22你的办公IP/32仅自己可SSH入方向拒绝全部-1/-10.0.0.0/0默认拒绝所有保持系统更新定期运行sudo apt update sudo apt upgradeUbuntu/Debian或sudo yum updateCentOS来安装安全补丁。3.2 MongoDB数据库安全配置MongoDB早期版本默认无认证这是极其危险的。务必配置。启用身份验证编辑MongoDB配置文件如/etc/mongod.confsecurity: authorization: enabled重启MongoDB后进入shell创建管理员和DoraCMS专用用户use admin db.createUser({ user: myAdmin, pwd: aVeryStrongPassword, // 务必使用强密码 roles: [ { role: root, db: admin } ] }) use doracms // 你的DoraCMS数据库名 db.createUser({ user: doracmsApp, pwd: anotherStrongPassword, roles: [ { role: readWrite, db: doracms } ] })修改DoraCMS配置在DoraCMS的数据库连接配置中通常是config目录下的配置文件使用doracmsApp用户和密码进行连接连接字符串类似mongodb://doracmsApp:passwordlocalhost:27017/doracms。绑定内网IP如果MongoDB和DoraCMS在同一台服务器在配置文件中将服务绑定到127.0.0.1禁止公网访问。net: bindIp: 127.0.0.1 port: 27017定期备份使用mongodump定期备份数据库并将备份文件存放在异地或安全存储中。踩过的坑曾经有一次客户的MongoDB公网可访问且无密码被黑客扫描到并清空了所有数据索要比特币。虽然从备份中恢复但造成了长时间的服务中断和声誉损失。数据库认证是底线必须配置。4. DoraCMS应用层防护代码与配置实战这是防护的核心我们需要在DoraCMS的代码逻辑和配置中嵌入安全控制。4.1 输入验证与净化堵住恶意数据的入口所有来自用户的数据GET/POST参数、HTTP头部、Cookie都不可信。必须在进入业务逻辑前进行严格校验。使用Joi或Validator.js进行模式验证DoraCMS本身使用parameter库进行校验我们可以强化这一环。例如在路由处理函数中对注册接口的数据进行验证// 假设在某个路由控制器中 const Joi require(joi); const registerSchema Joi.object({ username: Joi.string().alphanum().min(3).max(30).required(), email: Joi.string().email().required(), password: Joi.string().pattern(new RegExp(^[a-zA-Z0-9!#$%^*]{8,30}$)).required(), // 防止批量注册可以加入简单的验证码字段验证 captcha: Joi.string().length(4).required() }); async function register(req, res) { const { error, value } registerSchema.validate(req.body); if (error) { return res.status(400).send({ message: error.details[0].message }); } // 验证通过使用净化后的value进行后续操作 // ... 检查用户名是否重复等业务逻辑 }为什么用Joi它提供了丰富、可读性强的验证规则能有效防止畸形数据进入系统。防御NoSQL注入关键在于不直接将用户输入对象作为查询操作符。错误示范User.find(req.body.query)正确做法明确指定要查询的字段和值。// 登录验证示例 const { username, password } req.body; // 即使username是对象这里也只会取其字符串值 const user await User.findOne({ username: username.toString(), // 强制转换为字符串 password: sha256(password salt) // 密码应对比哈希值而非明文 });使用Mongoose的防御如果DoraCMS使用Mongoose ODM它提供了一些内置保护。但最根本的还是遵循“明确字段”的原则。4.2 输出编码安全地渲染内容杜绝XSS确保数据在渲染到HTML、JavaScript或URL时被正确编码。HTML上下文最常用EJS的% %标签默认进行HTML实体编码如转成lt;这是安全的。绝对避免使用%- %输出未经验证的用户数据。如果确实需要渲染富文本如文章详情必须使用专业的白名单HTML净化库如xss或sanitize-html。// 在将富文本内容存入数据库或渲染前进行净化 const xss require(xss); const cleanContent xss(req.body.content, { whiteList: { // 允许的标签和属性白名单 a: [href, title, target], p: [], br: [], // ... 其他允许的标签 }, stripIgnoreTag: true // 过滤不在白名单中的标签 }); // 然后将cleanContent存入数据库或传递给模板JavaScript上下文如果需要在script标签中输出JSON数据使用JSON.stringify()并确保内容被引号包裹。script var userData %- JSON.stringify(userData) %; // 危险可能注入JS var safeUserData %- JSON.stringify(userData).replace(//g, \\u003c) %; // 稍好但复杂 /script更好的做法将数据放在>div iduser-data>app.use(session({ secret: aVeryLongAndComplexSecretKey, // 使用长且复杂的密钥并从环境变量读取 resave: false, saveUninitialized: false, cookie: { secure: true, // 仅HTTPS传输 httpOnly: true, // 禁止JavaScript访问防XSS盗取Cookie maxAge: 1000 * 60 * 60 * 24, // 例如24小时 sameSite: strict // 严格模式防CSRF }, store: new MongoStore({ mongooseConnection: mongoose.connection }) // 示例Mongo存储 }));secure: true要求你的站点必须启用HTTPS。密码存储DoraCMS的用户模型应该使用加盐哈希如bcrypt存储密码。永远不要明文存储密码。检查models目录下的用户模型文件确认密码字段的处理逻辑。// 用户模型中的密码处理示例使用bcrypt userSchema.pre(save, async function(next) { if (!this.isModified(password)) return next(); try { const salt await bcrypt.genSalt(10); this.password await bcrypt.hash(this.password, salt); next(); } catch (err) { next(err); } }); userSchema.methods.comparePassword function(candidatePassword) { return bcrypt.compare(candidatePassword, this.password); };4.4 文件上传安全这是高危功能区必须多重校验。后缀名与MIME类型双重校验攻击者可以修改文件后缀名。不能只信后缀名。const path require(path); const fileType require(file-type); // 需要安装此库用于读取文件头判断类型 async function handleUpload(fileBuffer, originalName) { const ext path.extname(originalName).toLowerCase(); const allowedExt [.jpg, .png, .gif, .pdf]; const allowedMime [image/jpeg, image/png, image/gif, application/pdf]; // 1. 校验后缀名 if (!allowedExt.includes(ext)) { throw new Error(文件类型不允许); } // 2. 校验文件实际类型通过文件头 const type await fileType.fromBuffer(fileBuffer); if (!type || !allowedMime.includes(type.mime)) { throw new Error(文件内容类型不匹配); } // 3. 生成随机文件名防止路径遍历和覆盖 const randomName Date.now() - Math.round(Math.random() * 1E9) ext; const savePath path.join(__dirname, public/upload, randomName); // 4. 保存文件注意目录权限不可执行 await fs.promises.writeFile(savePath, fileBuffer); return /upload/ randomName; }限制文件大小在Express中间件或Nginx层面限制Content-Length。隔离存储将上传目录设置为静态资源目录且该目录没有执行脚本的权限通过服务器配置实现。最好使用云存储OSS彻底分离应用和文件服务。4.5 依赖包安全管理定期更新使用npm audit命令检查项目依赖的已知漏洞。使用npm update更新有安全漏洞的包。使用锁定文件package-lock.json或yarn.lock应提交到版本库确保所有环境安装的依赖版本一致。考虑使用Snyk或Dependabot这些工具可以集成到GitHub/GitLab自动创建依赖库安全更新的PR。5. 网络与传输层加固HTTPS与安全头强制HTTPS购买SSL证书Let‘s Encrypt免费并在Web服务器如Nginx或Node.js应用中配置将所有HTTP请求重定向到HTTPS。Nginx配置示例server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name yourdomain.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; # ... 其他SSL优化配置 location / { proxy_pass http://localhost:3000; # 转发到DoraCMS Node.js应用 proxy_set_header Host $host; # ... 其他代理设置 } }利用Helmet设置安全HTTP头DoraCMS已使用helmet但可以检查或强化其配置。helmet是一系列安全中间件的集合。const helmet require(helmet); app.use(helmet({ contentSecurityPolicy: { // 内容安全策略防XSS利器 directives: { defaultSrc: [self], styleSrc: [self, unsafe-inline], // 允许内联样式某些UI框架需要 scriptSrc: [self, trusted-cdn.com], // 只允许来自自己和可信CDN的JS imgSrc: [self, data:, img.example.com], }, }, hsts: { maxAge: 31536000, includeSubDomains: true }, // 强制HTTPS frameguard: { action: deny }, // 禁止页面被嵌入iframe防点击劫持 }));CSP内容安全策略是防御XSS的终极武器之一但配置需要谨慎错误的配置可能导致网站样式或脚本失效。建议从较宽松的策略开始逐步收紧。6. 监控、日志与应急响应安全防护不仅是预防还需要能发现和响应攻击。记录关键日志访问日志记录所有请求IP、方法、URL、状态码、用户代理。可以使用morgan中间件。审计日志记录关键操作如用户登录成功/失败、密码修改、数据删除、管理员操作。这些日志应记录操作者、时间、IP和具体动作。错误日志记录应用抛出的异常有助于发现攻击尝试如大量404请求、非法参数导致的错误。日志集中与分析不要只把日志写在服务器本地。使用ELKElasticsearch, Logstash, Kibana或云日志服务收集日志便于搜索和设置告警如1分钟内登录失败超过10次。定期进行安全扫描依赖扫描npm audit。漏洞扫描使用Nessus、OpenVAS或云厂商提供的Web漏洞扫描服务对公网IP进行定期扫描。渗透测试对于重要业务定期聘请专业白帽子进行渗透测试。制定应急预案如果发现被入侵怎么办预案应包括隔离服务器、排查入侵点、修复漏洞、恢复数据、重置密钥、法律合规报告等步骤。7. 常见问题与排查技巧实录在实际运维DoraCMS站点时你可能会遇到以下问题。这里记录了我的排查思路和解决方法。问题现象可能原因排查步骤与解决方案网站首页被篡改插入非法链接或跳转1. 服务器被提权静态文件被修改。2. 数据库内容被篡改如广告代码插入文章表。3. XSS漏洞导致前端渲染异常。1.检查文件完整性对比备份的静态文件如index.html模板使用find命令查找近期被修改的文件。find /path/to/doracms -type f -mtime -1。2.检查数据库查看核心内容表如文章、配置表是否有异常数据。检查管理员账号是否有异常登录记录。3.检查日志重点查看访问日志中是否有可疑的POST请求如上传、编辑接口。4.立即行动恢复文件/数据库备份修改所有密码服务器、数据库、后台更新所有依赖包。CPU或内存长期占用异常高1. 被植入挖矿脚本挖矿病毒。2. 遭遇DDoS或CC攻击。3. 程序存在内存泄漏或死循环。1.定位进程使用top或htop命令查看哪个进程占用资源高。2.检查异常进程如果是未知的node、sh或curl进程很可能是恶意程序。检查其启动命令和文件位置。3.检查网络连接netstat -antp查看大量异常外连尤其是到陌生IP的。4.检查定时任务crontab -l查看是否有可疑任务。5.解决方案杀死异常进程删除对应文件清理crontab使用云防火墙或CDN如Cloudflare缓解DDoS检查应用代码。后台管理员账号无故被添加或权限提升1. 存在逻辑漏洞允许未授权用户注册或提升权限。2. 数据库被直接注入如通过未授权的API。3. 会话固定或劫持。1.审计日志检查用户注册、角色变更的审计日志定位操作源IP和时间。2.代码审计重点检查用户注册、管理员添加/授权相关的接口是否存在权限校验缺失如只在前端校验后端未校验。3.检查会话管理确认会话ID是否足够随机是否在登录时重新生成。网站打开缓慢间歇性报错1. 数据库查询未优化遭遇慢查询或NoSQL注入导致全表扫描。2. 服务器资源被恶意爬虫耗尽。3. 依赖的第三方API或服务故障。1.数据库监控开启MongoDB的慢查询日志分析耗时操作。检查是否有查询使用了用户直接传入的对象作为条件。2.分析访问日志使用awk或日志分析工具统计IP和UA识别恶意爬虫特征高频请求、非常规UA。3.设置限流在Nginx或应用层如express-rate-limit对IP或接口进行请求频率限制。独家避坑技巧“黑盒”与“白盒”结合定期用扫描器黑盒扫自己的网站同时不定期Review核心业务代码白盒尤其是处理用户输入、数据库操作、文件操作的地方。权限回收测试用一个新建的、只有最低必要权限的服务器用户如前面创建的doracms去运行你的应用看是否一切正常。这能帮你发现哪些地方依赖了过高权限。备份的“3-2-1”原则至少3个备份副本用2种不同介质存储其中1份异地保存。并定期测试备份恢复确保备份是有效的。保持低调除非必要不要在错误信息中泄露服务器软件版本、路径等敏感信息。自定义DoraCMS的404、500错误页面。安全防护是一个持续对抗的过程。这套策略为你构建了一个坚实的基线但绝非终点。最重要的是培养安全意识将安全作为开发和运维流程中自然而然的一部分。每次代码提交、每个插件安装、每次服务器变更都多问一句“这会不会引入新的风险” 只有这样你的DoraCMS站点才能在充满挑战的网络环境中稳健运行。

相关新闻

JDK源码阅读指南:从原理到实践

JDK源码阅读指南:从原理到实践

1. 为什么JDK源码值得深入学习?作为Java开发者,我们每天都在使用JDK提供的各种类库和API,但大多数人只停留在"会用"的层面。记得我刚开始工作时,遇到一个ArrayList并发修改的Bug,花了整整两天才搞明白原因。…

2026/7/27 10:16:43 阅读更多 →
OpCore-Simplify:让Hackintosh配置从复杂到简单的终极解决方案

OpCore-Simplify:让Hackintosh配置从复杂到简单的终极解决方案

OpCore-Simplify:让Hackintosh配置从复杂到简单的终极解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经被OpenCore EFI配…

2026/7/27 10:16:43 阅读更多 →
Windows系统下飞书与OpenClaw自动化部署指南

Windows系统下飞书与OpenClaw自动化部署指南

1. 项目背景与核心价值 OpenClaw作为一款轻量级自动化工具,在办公场景中能显著提升重复性任务的执行效率。这次我们要在Windows系统上,通过飞书平台快速部署一套完整的OpenClaw运行环境。选择这个组合主要基于三点考虑:首先Windows系统在企业…

2026/7/27 10:16:43 阅读更多 →

最新新闻

基于大语言模型的智能代码审查系统设计与实践

基于大语言模型的智能代码审查系统设计与实践

1. 项目概述 在当今快节奏的软件开发环境中,代码质量保障一直是困扰研发团队的难题。作为一名经历过无数次代码审查的开发者,我深知传统人工审查的痛点:资深工程师把大量时间浪费在检查基础性错误上,而新人又因为经验不足导致审查…

2026/7/27 10:38:52 阅读更多 →
嵌入式系统内存运行时自检:CPUMBIST原理与TI C2000实战集成

嵌入式系统内存运行时自检:CPUMBIST原理与TI C2000实战集成

1. 项目概述:为什么嵌入式系统需要运行时内存自检? 在工业控制、汽车电子、医疗设备这些对可靠性要求极高的领域,嵌入式系统的“健康”直接关系到人身安全和财产安全。想象一下,一个控制电机转速的微控制器,如果其内部…

2026/7/27 10:38:52 阅读更多 →
从C6211B到C6713B DSP平台迁移:硬件修改与软件适配实战指南

从C6211B到C6713B DSP平台迁移:硬件修改与软件适配实战指南

1. 项目概述:从旧平台到C6713B的平滑过渡 在嵌入式DSP项目开发中,尤其是音频处理、通信基站或工业控制这类对实时性要求苛刻的领域,处理器的选型和后续升级往往牵一发而动全身。最近在负责一个老旧音频处理设备的性能升级项目,核心…

2026/7/27 10:38:52 阅读更多 →
智能仓储三维空间认知技术解析与应用实践

智能仓储三维空间认知技术解析与应用实践

1. 仓储管理面临的现实挑战与范式变革需求 现代仓储管理正面临着前所未有的复杂局面。随着电商物流的爆发式增长和供应链体系的不断升级,传统仓库已经从简单的货物存储场所转变为高度动态化的物流枢纽。我曾参与过多个大型智能仓储项目的实施,亲眼目睹了…

2026/7/27 10:38:52 阅读更多 →
DRV8316三相智能栅极驱动器评估板硬件配置与GUI调试全攻略

DRV8316三相智能栅极驱动器评估板硬件配置与GUI调试全攻略

1. 项目概述:从零上手DRV8316三相智能栅极驱动器评估板如果你正在设计一个需要驱动三相无刷直流电机的项目,无论是无人机、机器人关节还是高精度电动工具,那么电机驱动器的选型和调试绝对是你绕不开的核心环节。过去,我们可能需要…

2026/7/27 10:38:52 阅读更多 →
高速ADC动态性能参数深度解析:从SNR、SFDR到实战选型与调试

高速ADC动态性能参数深度解析:从SNR、SFDR到实战选型与调试

1. 高速ADC选型迷思:为什么动态性能参数比采样率更值得深究?在雷达、卫星通信或者高端测试测量设备的设计中,选型一颗高速ADC(模数转换器)往往是整个信号链设计的起点。很多工程师拿到需求,第一反应就是看采…

2026/7/27 10:37:52 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻