Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http 中 CSP 是什么【热度: 323】 #673

Open
yanlele opened this issue Jan 29, 2024 · 0 comments
Open

http 中 CSP 是什么【热度: 323】 #673

yanlele opened this issue Jan 29, 2024 · 0 comments
Labels
网络 web 网络相关 阿里巴巴 公司标签
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Jan 29, 2024

关键词:http CSP

在 HTTP 协议中,CSP 指的是 "Content Security Policy"(内容安全策略)。CSP 是一种用于增强网站安全性的安全策略机制,通过指定浏览器只能加载指定来源的资源,以减少恶意攻击的风险。

CSP 的主要目标是防止和减缓特定类型的攻击,例如跨站脚本攻击 (XSS) 和数据注入攻击。通过配置 CSP,网站管理员可以告诉浏览器哪些资源是被信任的,从而减少恶意代码的执行。

CSP 的一些常见配置项包括:

  1. default-src: 指定默认情况下可以从哪些来源加载资源。
  2. script-src: 指定允许加载脚本的来源。
  3. style-src: 指定允许加载样式表的来源。
  4. img-src: 指定允许加载图片的来源。
  5. font-src: 指定允许加载字体的来源。
  6. connect-src: 指定允许进行网络请求的来源(例如 Ajax 请求)。
  7. frame-src: 指定允许加载框架的来源。
  8. media-src: 指定允许加载媒体资源的来源。

等等。

以下是一个简单的 CSP 示例:

Content-Security-Policy: default-src 'self'; script-src 'self' example.com; img-src 'self' data:;

上述 CSP 规则的含义是:

  • default-src 'self': 允许从同一站点加载默认来源的资源。
  • script-src 'self' example.com: 允许从同一站点和 example.com 加载脚本。
  • img-src 'self' data:: 允许从同一站点和 data: 协议加载图片。

CSP 可以通过 HTTP 头部来设置,也可以通过 <meta> 标签嵌入在 HTML 页面中。使用 CSP 可以帮助网站减少受到恶意攻击的风险,提高网站的安全性。

如何通过 meta 标签设置 CSP

通过 <meta> 标签设置 Content Security Policy (CSP) 的方式如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="directives">
    <title>Your Page Title</title>
</head>
<body>
    <!-- Your content goes here -->
</body>
</html>

在上面的代码中,<meta> 标签的 http-equiv 属性被设置为 "Content-Security-Policy",而 content 属性中则包含了 CSP 指令(directives)。你需要将 "directives" 替换为你实际想要设置的 CSP 规则。

以下是一个具体的例子:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' example.com; img-src 'self' data:;">

在这个例子中,CSP 规则指定了默认来源是同一站点,允许加载同一站点和 example.com 的脚本,允许加载同一站点和 data: 协议的图片。

注意:通过 <meta> 标签设置的 CSP 规则只对当前页面生效,而通过 HTTP 头部设置的 CSP 规则对整个站点生效。因此,如果你希望 CSP 规则对整个站点生效,最好在服务器端通过 HTTP 头部设置 CSP。

@yanlele yanlele added 网络 web 网络相关 阿里巴巴 公司标签 labels Jan 29, 2024
@yanlele yanlele added this to the milestone Jan 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
网络 web 网络相关 阿里巴巴 公司标签
Projects
None yet
Development

No branches or pull requests

1 participant