web开发中的安全和防御入门——csp (content-security-policy内容安全策略)
偶然碰到iframe跨域加载被拒绝的问题,原因是父页面默认不允许加载跨域的子页面,也就是的content-security-policy中没有设置允许跨域加载。
简单地说,content-security-policy能限制页面允许和不允许加载的所有资源,常见的包括:
- iframe加载的子页面url
- js文件
- 图片、视频、音频、字体等资源
设置content-security-policy有两个途径:
- 通过请求头设置(http header)
- 在html中head > meta设置
使用中注意:
- 1比2的优先级高,也就是浏览器优先使用请求头的配置
- content-security-policy各配置项默认使用
default-src指令的值,该指令默认是不限制的

csp配置可以有效阻止跨站脚本攻击(xss),而且用起来也不麻烦,可以作为一个开发中的日常习惯。
具体使用方式就不赘述了,感兴趣的可以看下面的参考页面。
参考
- Content Security Policy 入门教程 —— 阮一峰
- 内容安全策略(CSP)—— MDN
- CSP常用配置项(指令)
相关文章:
web开发中的安全和防御入门——csp (content-security-policy内容安全策略)
偶然碰到iframe跨域加载被拒绝的问题,原因是父页面默认不允许加载跨域的子页面,也就是的content-security-policy中没有设置允许跨域加载。 简单地说,content-security-policy能限制页面允许和不允许加载的所有资源,常见的包括&a…...
定了!全国2023下半年软考(高级、中级、初级)报名时间汇总
截止到2023年8月2日,有以下地区公布了软考报名时间: 安徽软考2023下半年报名时间:8月15日9:00至8月21日16:00 黑龙江软考2023下半年报名时间:8月16日至8月22日 甘肃软考2023下半年报名时间:8月28日9:00至9月6日18:00…...
Linux下安装配置Redis
文章目录 安装依赖库上传安装包并解压 启动默认启动指定配置启动开机自启 安装 依赖库 Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖: yum install -y gcc tcl上传安装包并解压 将Redis安装包上传到服务器的任意目录,例…...
深度学习(33)——CycleGAN(2)
深度学习(33)——CycleGAN(2) 完整项目在在这里:欢迎造访 文章目录 深度学习(33)——CycleGAN(2)1. Generator2. Discriminator3. fake pool4. loss定义5. 模型参数量6…...
WeakMap and WeakSet(弱映射和弱集合)
在垃圾回收中了解JavaScript 引擎在值“可达”和可能被使用时会将其保持在内存中 let john { name: "John" }; // 该对象能被访问,john 是它的引用 // 覆盖引用 john null; // 该对象将会被从内存中清除通常,当对象、数组之类的数据结构在内…...
【Vue3基础】组件保持存活、异步加载组件
一、组件保持存活 1、需求描述 点击按钮跳转到其他组件后,原组件不会被销毁 2、知识整理 1)组件生命周期 创建期:beforeCreate、created 挂载期:beforeMount、mounted 更新期:beforeUpdate、updated 销毁期&am…...
在 3ds Max 中使用相机映射将静止图像转换为实时素材
推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 在 Photoshop 中准备图像 步骤 1 这是我将在教程中使用的静止图像。 这是我的静态相机纸箱的快照。 静止图像 步骤 2 打开 Photoshop。将图像导入 Photoshop。 打开 Photoshop 步骤 3 单击套索工…...
如何使用GIL解决Python多线程性能瓶颈
如何使用GIL解决Python多线程性能瓶颈 引言: Python是一种使用广泛的编程语言,但其在多线程方面存在一个性能瓶颈,即全局解释器锁(Global Interpreter Lock,简称GIL)。GIL会限制Python的多线程并行能力&am…...
k8s概念-深入pod
回到目录 工作负载(workloads) 工作负载(workload)是在kubernetes集群中运行的应用程序。无论你的工作负载是单一服务还是多个一同工作的服务构成,在kubernetes中都可以使用pod来运行它 workloads分为pod与control…...
Web服务器实验案例
目录 关闭或放行防火墙和selinux 1 搭建静态网站 2 建立两个基于ip地址访问的网站 思路: 简单配置 编写httpd额外文件 3 建立两个基于不同端口访问的网站 思路 创建文件(与之前一致) 额外文件配置 4 基于虚拟目录和用户控制的web网…...
预警 项目经验BUG
文章目录 定时任务 定时任务 在方法上使用Scheduled注解 cron参数: cron是一个表达式,最多接收7个参数从左到右分别表示:秒 分 时 天 月 周 年参数以空格隔开,其中年不是必须参数,可以省略。示例:Schedule…...
基于RFID技术的猪舍门读卡器
随着科技的发展和普及,智能化管理在各个领域的应用越来越广泛。在畜牧业中,将RFID技术应用在养殖管理中的企业也越来越多,为养殖企业的智能化管理提供了有力的支持,本文将介绍RFID技术的猪舍门读卡器的应用。 一、RFID技术简介 …...
亚马逊店铺的回款周期是多久?
现如今,开亚马逊店铺可是一个技术活,一旦有一个环节,或者是一件事情没有做好,对整个亚马逊店铺过程中影响都是十分巨大的,不少亚马逊卖家就吃过这方面的亏。 很多亚马逊卖家就是吃亏在这些方面,现在要想开…...
剑指offer19.正则表达式
这道题我一看就有印象,我室友算法课设抽到这题,他当时有个bug让我帮他看一下,然后我就大概看了一下他的算法,他是用动态规划写的,用了一个二维数组,然后我就试着按照这个思路去写,想了一会还是没…...
Mac Navicat 16试用脚本
一、无限试用脚本如下 #!/bin/bash #/usr/libexec/PlistBuddy -c "print" ~/Library/Preferences/com.navicat.NavicatPremium.plist /usr/libexec/PlistBuddy -c "Delete :91F6C435D172C8163E0689D3DAD3F3E9" ~/Library/Preferences/com.navicat.Navica…...
什么是 webpack?
Webpack 介绍 什么是 webpack? :::tip 官方描述 webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个…...
#B. 费解的开关
题目描述 你玩过“拉灯”游戏吗?2525盏灯排成一个5x55x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应…...
Docker离线安装
Docker离线安装 一、安装步骤 1. 下载 Docker 二进制文件(离线安装包) 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 注:本文使用 /x86_64/docker-18.06.1-ce.tgz,注意对应操作系统类型。 2.…...
React高阶学习(二)
目录 1. 基本概念和语法2. 组件化开发3. 状态管理4. 生命周期钩子5. 条件渲染6. 循环渲染7. 事件处理8. 组件间通信9. 动画效果10. 模块化开发 1. 基本概念和语法 React 是基于 JavaScript 的库,用于构建用户界面。它采用虚拟 DOM 技术,能够高效地渲染页…...
C语言中的字符串输入操作详解
C语言输入字符串详解 目录 介绍使用scanf_s输入字符串scanf_s的限制和问题解决输入空格的方法——使用gets_s函数gets_s函数的注意事项示例代码演示总结 1. 介绍 在C语言中,输入字符串是常见的操作。本篇博客将详细讨论在C语言中输入字符串的方法。我们将使用s…...
VRCT:打破VRChat语言壁垒的实时翻译与转录工具
VRCT:打破VRChat语言壁垒的实时翻译与转录工具 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 在全球化的虚拟社交平台VRChat中,语言差异常常成为跨文化交流的主…...
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗到底有啥区别
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗核心差异 刚入行的技术新人小张最近很困惑:同样是"软件实施工程师"岗位,为什么招聘JD里有的要求精通SAP模块配置,有的却强调微信生态部署经验?在面试了…...
从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3+的Encoder模块(含代码详解)
从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3的Encoder模块(含代码详解) 在语义分割领域,DeepLabv3以其出色的性能和清晰的架构设计成为众多研究者和工程师的首选方案。本文将带您深入探索其核心组件——Encoder模块的实现细…...
【大数据】离线数仓核心组件:Hive 架构解析与进阶操作指南
Hive 是基于 Hadoop 的数据仓库工具,主要用于解决海量结构化日志的数据统计问题。它提供了一套类 SQL 的查询语言 HiveQL,通过将 SQL 语句转换为运行在 Hadoop 集群上的 MapReduce 或 Spark 任务,大幅降低了大数据分析的工程门槛。 目录 一、…...
保姆级教程:手把手教你用VCSA 8.0.3接管Windows AD域,实现统一登录
企业级虚拟化身份管理:VCSA 8.0.3与Windows AD域深度集成实战 在数字化转型浪潮中,企业IT基础设施的集中化管理已成为刚需。当虚拟化平台规模扩大至数百台主机时,如何确保管理员和开发人员既能高效访问资源,又能遵循最小权限原则&…...
H5与原生App高效通信:DSBridge桥方法实战解析
1. 为什么需要DSBridge? 在混合开发中,H5页面经常需要调用摄像头、地理位置等原生功能,而原生App也需要获取H5页面的数据更新。传统通信方式(如URL Scheme拦截)存在三个痛点:协议维护成本高(需…...
从滤波到故障诊断:手把手教你用MATLAB实现信号互相关分析的实际项目
从振动信号到故障定位:MATLAB互相关分析的工业实战指南 车间里那台大型离心泵的异常振动已经持续两周了。王工程师带着加速度传感器采集了三组不同位置的振动信号,屏幕上跳动的波形看起来杂乱无章。"到底是轴承磨损还是叶轮不平衡?"…...
ComfyUI-WanVideoWrapper全栈指南:从认知到实践的AI视频生成解决方案
ComfyUI-WanVideoWrapper全栈指南:从认知到实践的AI视频生成解决方案 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 一、认知篇:理解AI视频生成的技术基础 1.1 核心概念…...
从理论到实践:手把手教你用MATLAB构建LSSVR代理模型
1. 代理模型与LSSVR基础认知 第一次接触"代理模型"这个概念时,我正被一个汽车悬架优化项目折磨得焦头烂额——每次修改参数都要运行长达6小时的有限元仿真。直到导师扔给我一篇关于LSSVR的论文,才真正体会到什么叫"山重水复疑无路&#x…...
告别B站缓存格式困扰:m4s-converter让视频文件处理效率提升80%
告别B站缓存格式困扰:m4s-converter让视频文件处理效率提升80% 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 一、痛点直击…...
