CSP
CSP(Communicating Sequential Processes,通信顺序进程)是由计算机科学家托尼·霍尔于1978年提出的并发编程形式化模型。其核心思想是将并发系统描述为多个独立的顺序进程,进程之间通过消息传递(通道)进行通信与同步,而非共享内存。CSP对并发理论研究和实际编程语言设计(如Go、Erlang)均有深远影响。
核心事实
时间轴 (近 90 天)
Markdown 缺乏像 CSP 那样的原生安全机制,因而更难在解析层做隔离。
CSP报告机制有两种:传统方式通过CSP头中的report-uri指令发送 application/csp-report 格式JSON;新标准通过Reporting-Endpoints头声明端点并使用report-to指令,报告格式为 application/reports+json。
CSP回放探测的每个POST请求携带真实的 application/csp-report 载荷,包含blockedURL、disposition、effectiveDirective等字段;结果分类包括accepted、queued、auth_required、rejected_bad_request、endpoint_missing、rate_limited或fetch_error。
/api/csp-violation-replay 端点抓取目标页面,提取CSP头、meta CSP、Reporting-Endpoints头以及report-uri/report-to配置,并对每个声明的端点回放script_violation、style_violation、connect_violation和img_violation四种违规场景。
PasteKit 通过严格的内容安全策略(CSP)强制执行本地处理,防止数据外泄。
CSP 本身并非数据防泄漏的绝对保证,它约束的是页面自身的资源加载行为,而非浏览器扩展或操作系统层面的监控。
Reado 应用通过以下方式防御类似攻击:HTML 文件默认以源码打开、Markdown 和笔记本输出经 rehype-sanitize 消毒、应用自身 CSP 仅允许 script-src 'self' 并覆盖 Worker、文件大小不改变加载方式、本地图片访问限制在打开的项目内。
消毒器并非万能,仍需配合应用自身严格的 CSP 作为纵深防御,因为消毒规则库可能存在遗漏,而 CSP 由浏览器强制执行,二者互补。
CSP 只在通过 HTTP(S) 或 data: URL 加载的文档上生效,file:// 协议加载的本地文件默认不继承任何 CSP。
在 Chromium 中,file:// 页面可以 fetch() 读取其他本地文件,且不继承任何 CSP。
还有 27 条时间轴事件
全部知识事实 (20)
Go的并发模型基于CSP(通信顺序进程)理论,由计算机科学家Tony Hoare于1978年提出
80%待验证CSP最早由Mozilla在2004年前后提出概念,2012年作为W3C候选推荐标准(CSP Level 1)正式发布
80%待验证GitHub和Twitter等大型网站利用CSP的report-uri/report-to机制收集CSP违规数据用于策略调优
75%待验证Go语言的并发模型基于CSP理论,由Tony Hoare在1978年提出,核心思想是通过消息传递而非共享内存协调并发进程
60%待验证Go采用CSP(Communicating Sequential Processes)并发模型,goroutine之间通过channel消息传递而非共享内存通信
60%待验证Markdown 缺乏像 CSP 那样的原生安全机制,因而更难在解析层做隔离。
50%待验证/api/csp-violation-replay 端点抓取目标页面,提取CSP头、meta CSP、Reporting-Endpoints头以及report-uri/report-to配置,并对每个声明的端点回放script_violation、style_violation、connect_violation和img_violation四种违规场景。
50%待验证CSP报告机制有两种:传统方式通过CSP头中的report-uri指令发送 application/csp-report 格式JSON;新标准通过Reporting-Endpoints头声明端点并使用report-to指令,报告格式为 application/reports+json。
50%待验证CSP回放探测的每个POST请求携带真实的 application/csp-report 载荷,包含blockedURL、disposition、effectiveDirective等字段;结果分类包括accepted、queued、auth_required、rejected_bad_request、endpoint_missing、rate_limited或fetch_error。
50%待验证PasteKit 通过严格的内容安全策略(CSP)强制执行本地处理,防止数据外泄。
50%待验证CSP 本身并非数据防泄漏的绝对保证,它约束的是页面自身的资源加载行为,而非浏览器扩展或操作系统层面的监控。
50%待验证消毒器并非万能,仍需配合应用自身严格的 CSP 作为纵深防御,因为消毒规则库可能存在遗漏,而 CSP 由浏览器强制执行,二者互补。
50%待验证CSP 只在通过 HTTP(S) 或 data: URL 加载的文档上生效,file:// 协议加载的本地文件默认不继承任何 CSP。
50%待验证漏洞成因是预览 HTML 的三层防护(CSP、data: URL 隔离、开发服务器代理过滤)覆盖不全:小于 256KB 的文件走 data: URL 加载并受 CSP 保护,超过 256KB 的文件被写入临时文件并以 file:// 协议加载,该路径既无 CSP 也无请求过滤。
50%待验证在 Chromium 中,file:// 页面可以 fetch() 读取其他本地文件,且不继承任何 CSP。
50%待验证Reado 应用通过以下方式防御类似攻击:HTML 文件默认以源码打开、Markdown 和笔记本输出经 rehype-sanitize 消毒、应用自身 CSP 仅允许 script-src 'self' 并覆盖 Worker、文件大小不改变加载方式、本地图片访问限制在打开的项目内。
50%待验证内联脚本会受 CSP 限制,在禁止 unsafe-inline 的页面里无法执行。
50%待验证CSP 的 script-src 指令控制脚本来源,如果策略中未包含 'unsafe-inline',所有内联 <script> 标签都会被浏览器拒绝执行。
50%待验证在严格 CSP 下,本技巧需要为每段内联脚本生成 nonce 或哈希,动态内容较多时会显著增加服务端配置复杂度。
50%待验证CSP 的标准求解手段是回溯搜索配合约束传播(如弧一致性),但规模变大时会组合爆炸。
50%