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

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.dtcms.com/a/231190.html

相关文章:

  • 豆包突然没法用了,一打开就提示网络连接错误
  • 如何从零开始建设一个网站?
  • 重温经典算法——希尔排序
  • 乡村三维建模 | 江苏农田无人机建模案例
  • 如何解决spring循环依赖
  • 1.36公里外的毫米级视界:遥感技术的革命性突破
  • 天机学堂(我的课表)
  • Opencl
  • 池化层-机器学习
  • 嵌入式Linux之RK3568
  • C++11 defaulted和deleted函数从入门到精通
  • Hadoop大数据集群深度实践:源码分析、参数调优与自动化运维平台选型全解
  • 基于LangChain构建高效RAG问答系统:向量检索与LLM集成实战
  • CS144 - Lecture 3
  • P3156 【深基15.例1】询问学号
  • 解决Required request part ‘file‘ is not present
  • 《操作系统真相还原》——初探内存
  • 虚拟斯德哥尔摩症候群:用户为何为缺陷AI辩护?
  • 涂胶协作机器人解决方案 | Kinova Link 6 Cobot在涂胶工业的方案应用与价值
  • ArcGIS Pro 3.4 二次开发 - 共享
  • 近几年字节飞书测开部分面试题整理
  • hadoop集群启动没有datanode解决
  • 自动化生产线,IT部署一站式解决方案-Infortrend KS私有云安全,一机多用
  • CortexON:开源的多代理AI系统无缝自动化和简化日常任务
  • 拉深工艺模块——回转体拉深件毛坯尺寸的确定(二)
  • 网络攻防技术十三:网络防火墙
  • 电工基础【6】顺序、时间控制
  • [Java 基础]枚举
  • ubutu修改网关
  • 分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测