📅  最后修改于: 2023-12-03 15:01:17.169000             🧑  作者: Mango
在 Web 应用程序中,内容安全策略是一种安全机制,可以防止应用程序受到跨站点脚本 (XSS) 攻击。默认情况下,浏览器使用自己的安全机制来防止此类攻击。但是,如果您有更严格的安全要求,您可以使用内容安全策略来实现。
内容安全策略是通过设置 Content-Security-Policy
HTTP 标头来实现的。该标头指定了浏览器允许加载哪些来源的内容。
例如,以下 Content-Security-Policy
标头将只允许从 example.com
、cdn.example.com
和 self
(当前域)加载内容:
Content-Security-Policy: default-src 'self' example.com cdn.example.com;
一些常见的指令包括:
default-src
:指定默认来源(如果没有其他指令匹配)。script-src
:指定可执行脚本的来源。style-src
:指定可应用到文档中的样式表的来源。img-src
:指定可用于 <img>
标签的来源。connect-src
:指定可用于 HTTP 连接的来源。font-src
:指定可用于字体的来源。object-src
:指定可用于 <object>
标签的来源。media-src
:指定可用于媒体元素的来源。指令中可以包含多个源 RFC7230#section-7.2,例如:
Content-Security-Policy: script-src 'self' https://apis.google.com https://ajax.googleapis.com;
这将允许从当前站点、https://apis.google.com
和 https://ajax.googleapis.com
加载脚本。在源中,你可以指定每个方案(http:
或 https:
)、主机名和端口(如有必要)。
要更改内容安全策略,您需要在 head
标签中添加 meta
标签。例如,以下标记将在您的页面上设置内容安全策略:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' example.com cdn.example.com;">
</head>
<body>
<!-- Your web page content here -->
</body>
</html>
您可以替换 example.com
和 cdn.example.com
以适应您自己的需要。您还可以指定其他指令,或者添加额外的源。
使用内容安全策略是保护您的 Web 应用程序免受 XSS 攻击的一种重要步骤。当您需要更严格的安全要求时,可以使用它来控制加载内容的来源。要更改内容安全策略,请在您的 head
标签中添加 meta
标签并指定适当的 Content-Security-Policy
。