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

CSP使用严格设置

文章目录

  • 说明
  • 示例

说明

日期:2025年6月2日。

内容安全政策(MPS)是一个额外的安全层,有助于检测和缓解某些类型的攻击。包括(但不限于)跨站点脚本(XSS)和数据注入攻击。这些攻击用于从数据盗窃到网站破坏或恶意软件分发的各种行为。CPS提供了一组标准的HTTP标头,允许网站所有者声明应允许浏览器在该页面上加载的经批准的内容来源-涵盖的类型包括JavaScript、CSS、HTML框架、字体、图像和可嵌入对象,例如Java小程序、Firefox、音频和视频文件。

不支持CSP的旧版浏览器会自动忽略CSP。

CSP的严格设置只是一个基础,要针对自己的需求来开放设置,但开放的同时,要对需求做好安全措施。

示例

日期:2025年6月2日。
操作系统:ubuntu server v24.04.2 amd64。
应用:

  • node.js v22.15.1
  • npm v11.4.1
  • express(node.js的模块) v5.1.0

增加对express的配置。

// 设置 CSP 中间件
app.use((req, res, next) => {const cspPolicy = "default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; form-action 'self'; frame-ancestors 'none'; report-to csp-endpoint";res.setHeader('Content-Security-Policy', cspPolicy);res.setHeader('Report-To', '{"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"/csp-violation-report"}],"include_subdomains":true}');next();
});var reportCount = 0;
// 处理 CSP 违规报告,创建报告接收路由
app.post('/csp-violation-report', express.json({ type: 'application/csp-report' }), (req, res) => {    reportCount++;const report = req.body['csp-report'];    // 记录违规报告console.log('CSP 违规报告:', {documentURI: report.documentURI,violatedDirective: report.violatedDirective,blockedURI: report.blockedURI,originalPolicy: report.originalPolicy});res.status(204).end();
});
// 监控报告率
setInterval(() => {    if (reportCount > 1000) {// 发送告警:可能遭受攻击或策略配置错误console.log(`高频率CSP违规: ${reportFrequency}/小时`);}reportCount= reportCount/ 2; //上一次监测时的报告数量,将一定程度影响下一次检测,且影响度不断降低。
}, 60*60 * 1000); // 每小时检查一次
http://www.xdnf.cn/news/10598.html

相关文章:

  • 【PhysUnits】15.9 引入P1后的右移运算(shr.rs)
  • C++ 简介
  • 基于 STM32 的医疗垃圾运输小车智能控制系统设计与实现
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块
  • 思维链提示:激发大语言模型推理能力的突破性方法
  • 论文略读:Auto-Regressive Moving Diffusion Models for Time Series Forecasting
  • 资源预加载+懒加载组合拳:从I/O拖慢到首帧渲染的全面优化方案
  • IPtables部署和使用
  • SCAU8640--希尔排序
  • 产品设计法则:用「人性引擎」驱动7层产品进化
  • OVD开放词汇检测中COCO数据集的属性
  • 数论——约数和倍数
  • 平滑技术(数据处理,持续更新...)
  • 提升嵌入式软件调试效率的核心方
  • 什么是煤矿智能掘进
  • 第七章.正则表达式
  • 【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡
  • 腾讯位置商业授权沿途搜索服务开发指南
  • c++ delete实现动作
  • Netty学习example示例
  • RAG的ETL Pipeline源码解读
  • 科技类专著写作与出版过程
  • 【java面试】MySQL篇
  • Python Day40 学习(复习学习日志Day5-7)
  • make_unique
  • 基于LangChain的AI助手开发:从零到上线
  • 案例:TASK OA
  • Pycharm的终端无法使用Anaconda命令行问题详细解决教程
  • 兰亭妙微十六年高水准交互设计公司
  • php 各版本下载