前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 Web Content-Security-Policy Directive 通过 meta 元素指定的一些测试用例

关于 Web Content-Security-Policy Directive 通过 meta 元素指定的一些测试用例

作者头像
Jerry Wang
发布2022-06-11 10:07:48
5030
发布2022-06-11 10:07:48
举报

Content Security Policy 是一种使用标题或 meta 元素来限制或批准加载到指定网站上的内容的策略。 这是一个广受支持的安全标准,所有网站运营者都应该对这些标准了然于心。

使用 CSP 通过说明允许或不允许的规则为 Web 网站增加了一层保护。 这些规则有助于防御内容注入和跨站点脚本 (XSS) 攻击,这是 OWASP 的十大 Web 应用程序安全风险中的两个。

当攻击者能够通过注入恶意代码来破坏未受保护的网站时,就会发生 XSS 攻击。 当用户尝试与站点交互时,恶意脚本会在用户的浏览器中执行,从而使攻击者能够访问受害者与站点的交互,例如登录信息等。

CSP 将阻止大多数脚本注入攻击的发生,因为它可以设置为将 JavaScript 限制为仅从受信任的位置加载。

本文介绍一些基于 frame-src 这个 Directive 的各种测试用例。 作为容器,定义 iframe 的 web 应用,监听在 3000 端口:wechat 文件夹下

嵌入了另一个网页,监听在 3002 端口,Jerrylist 文件夹下面:

如果 Jerrylist 文件夹下的 csp html 里没有声明任何 csp 相关的 Directive(通过 meta 标签),则 iframe 工作正常:

测试1:3000 应用(即嵌入 3002 应用的 web 应用里)增加 frame-src

源代码:

代码语言:javascript
复制
<html>
    <head>
        <meta http-equiv="Content-Security-Policy" content="frame-src 'self'">
    </head>
    <h1>Parent</h1>
    <iframe src="http://localhost:3002/csp"></iframe>
</html>

测试结果:

Refused to frame ‘http://localhost:3002/’ because it violates the following Content Security Policy directive: “frame-src ‘self’”.

iframe 加载失败:

测试2

代码语言:javascript
复制
<html>
    <head>
        <meta http-equiv="Content-Security-Policy" content="frame-src 'http://localhost:3002'">
    </head>
    <h1>Parent</h1>
    <iframe src="http://localhost:3002/csp"></iframe>
</html>

错误消息:

The source list for the Content Security Policy directive ‘frame-src’ contains an invalid source: ‘‘http://localhost:3002’’. It will be ignored. 11:25:37.549 localhost/:6 Refused to frame ‘http://localhost:3002/’ because it violates the following Content Security Policy directive: “frame-src ‘none’”.

iframe 加载失败:

改成 * 的话,又重新工作了:

下列代码也工作:

代码语言:javascript
复制
<html>
    <head>
        <meta http-equiv="Content-Security-Policy" content="frame-src http://localhost:3002/csp">
    </head>
    <h1>Parent</h1>
    <iframe src="http://localhost:3002/csp"></iframe>
</html>

下列代码也工作:

代码语言:javascript
复制
<html>
    <head>
        <meta http-equiv="Content-Security-Policy" content="frame-src http://localhost:*/csp">
    </head>
    <h1>Parent</h1>
    <iframe src="http://localhost:3002/csp"></iframe>
</html>

下列代码也工作:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试1:3000 应用(即嵌入 3002 应用的 web 应用里)增加 frame-src
  • 测试2
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档