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

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); // 每小时检查一次

相关文章:

  • 电脑桌面便签软件哪个好?桌面好用便签备忘录推荐
  • OpenCV4.4.0下载及初步配置(Win11)
  • 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——3. 服务器软件更新,以及常用软件安装
  • 第十章:Next的Seo实践
  • 使用pdm+uv替换poetry
  • 【CBAP50技术手册】#33 Prioritization(优先级排序):BA(业务分析师)的“焦点加速器”
  • 芝麻酱工作创新点分享1——SpringBoot下使用mongo+Redis做向量搜索
  • Java详解LeetCode 热题 100(23):LeetCode 206. 反转链表(Reverse Linked List)详解
  • 机器学习:支持向量机(SVM)原理解析及垃圾邮件过滤实战
  • mac电脑安装 nvm 报错如何解决
  • 前端自动化测试利器:Playwright 全面介绍
  • Python-120:摇骰子的胜利概率
  • 23. Merge k Sorted Lists
  • 鸿蒙进阶——Mindspore Lite AI框架源码解读之模型加载详解(一)
  • DAY41 CNN
  • DAY 41 简单CNN
  • Python----目标检测(训练YOLOV8网络)
  • SpringBoot手动实现流式输出方案整理以及SSE规范输出详解
  • JavaSE知识总结(集合篇) ~个人笔记以及不断思考~持续更新
  • 学习经验分享【40】目标检测热力图制作
  • 黑彩网站自己可以做么/类似火脉的推广平台
  • nba网站开发毕业论文/网络推广计划书范文
  • 广东网站设计品牌设计/网站整站优化公司
  • 开发者选项在哪里打开oppo/免费seo在线优化
  • 网站制作 上海网络热线/市场调查报告
  • 关于电商平台/seo百度关键词排名