当前位置: 首页 > article >正文

CSP严格模式返回不存在的爬虫相关文件

文章目录

  • 说明
  • 示例(返回404)
  • 示例(创建CSP例外)

说明

日期:2025年6月4日。

CSP严格模式是default-src 'none',但有些web应用中,在爬虫相关文件不存在的情况下,依旧返回了对应文件,而且服务器状态时200,这就导致CSP严格模式违规。

原因是特殊文件的"爬虫友好"设计原则:

  • 搜索引擎优化(SEO)的核心文件
  • 历史惯例要求这些文件必须可访问(即使内容为空)
  • 返回 404 可能被搜索引擎解释为"网站不支持 SEO"。

虽然导致CSP严格模式违规,但并非不能用这些文件。

要根据自身网站需要,对所需的文件创建CSP例外。

示例(返回404)

日期:2025年6月4日。
操作系统:Alibaba Cloud Linux 3.2104 LTS 64位。
应用:

  • node.js v22.15.1
  • npm v11.4.1
// 需要特殊处理的SEO/安全文件列表
const WELL_KNOWN_FILES = ['/robots.txt','/sitemap.xml','/sitemap_index.xml', // 多站点地图情况'/favicon.ico','/ads.txt','/security.txt','/.well-known/security.txt' // 标准位置];// 统一处理:返回404WELL_KNOWN_FILES.forEach(path => {app.get(path, (req, res) => {// 可选:记录访问日志console.log(`Blocked access to ${path} from ${req.ip}`);res.status(404).end();});});// 注册静态文件中间件,必须在统一处理之后
app.use(express.static(path.join(__dirname, 'testwebapp')));

示例(创建CSP例外)

日期:2025年6月4日。
操作系统:Alibaba Cloud Linux 3.2104 LTS 64位。
应用:

  • node.js v22.15.1
  • npm v11.4.1

以sitemap.xml为例。

注:

  • 仅当实际提供sitemap.xml时才需要添加例外。
  • XML文件本身应该是纯静态的。
  • 避免内联样式。
app.get('/sitemap.xml', (req, res) => {res.set('Content-Security-Policy', "default-src 'none'; style-src 'self'");res.sendFile(path.join(__dirname, 'public/sitemap.xml'));
});
http://www.lryc.cn/news/2400862.html

相关文章:

  • https(SSL)证书危机和可行的解决方案
  • C#获取磁盘容量:代码实现与应用场景解析
  • 2359. 找到离给定两个节点最近的节点
  • 前端导入Excel表格
  • AI生态警报:MCP协议风险与应对指南(下)——MCP Host安全
  • 基于VLC的Unity视频播放器(四)
  • pixel刷入Android15 userdebug版本
  • 【Go-补充】ioReader + ioWriter + bufio
  • leetcode 3403. 从盒子中找出字典序最大的字符串 I 中等
  • C# 一个解决方案放一个dll项目,一个dll测试项目 ,调试dll项目的源码
  • 【PmHub面试篇】PmHub 整合 TransmittableThreadLocal(TTL)缓存用户数据面试专题解析
  • unity随机生成未知符号教程
  • 基于RK3576+FPGA+AI工业控制器的工地防护检测装备解决方案
  • 推荐一款PDF压缩的工具
  • 混沌映射(Chaotic Map)
  • MySQL对数据库用户的操作
  • 《PyTorch Hub:解锁深度学习模型的百宝箱》
  • 数据结构 堆与优先级队列
  • Leetcode 3569. Maximize Count of Distinct Primes After Split
  • 用好 ImageFX,解锁游戏素材生成新姿势:从入门到进阶
  • unix/linux,sudo,其基本属性、语法、操作、api
  • 文本内容变化引起布局尺寸变化 导致的 UI 适配问题
  • 01-Redis介绍与安装
  • 十六、【前端强化篇】完善 TestCase 编辑器:支持 API 结构化定义与断言配置
  • Kafka broker 写消息的过程
  • VR博物馆推动现代数字化科技博物馆
  • Python爬虫之数据提取
  • 第2讲、Odoo深度介绍:开源ERP的领先者
  • 【TCP/IP和OSI模型以及区别——理论汇总】
  • 【HarmonyOS 5】生活与服务开发实践详解以及服务卡片案例