与元信息相关的标签
本文解释了与元信息相关的标签。
它解释了<meta>标签,包括与SEO、响应式设计和Content-Security-Policy相关的内容。
YouTube Video
与元信息相关的标签
<meta> 标签
1<meta charset="UTF-8">
2<meta name="viewport" content="width=device-width, initial-scale=1.0"><meta>标签为HTML文档提供元数据。元数据不在页面上显示,但被搜索引擎和浏览器使用。<meta>标签用于页面描述、关键词、作者信息和响应式设计设置。
<meta name="viewport"> 标签
1<meta name="viewport" content="width=device-width, initial-scale=1"><meta name="viewport">标签控制网页在不同设备上的布局和缩放。它常用于响应式设计中,以确保在移动设备上的正确显示。
<meta name="description"> 标签
1<meta name="description" content="An example webpage"><meta name="description">标签用于简要描述网页内容。搜索引擎使用此描述在搜索结果中显示页面的摘要。
<meta name="keywords"> 标签
1<meta name="keywords" content="HTML, CSS, JavaScript"><meta name="keywords">标签提供与页面内容相关的关键词列表。搜索引擎使用这些关键词来更好地理解页面内容。
<meta name="author"> 标签
1<meta name="author" content="John Doe"><meta name="author">标签指定网页的作者。此信息主要用于搜索引擎和工具,以准确识别页面的作者。
<meta http-equiv="refresh"> 标签
1<meta http-equiv="refresh" content="5; url=https://example.com"><meta http-equiv="refresh">标签用于在指定时间后自动刷新页面或重定向到另一个 URL。这对于重新加载页面或重定向用户很有用。
<meta http-equiv="cache-control"> 标签
1<meta http-equiv="cache-control" content="no-cache"><meta http-equiv="cache-control">标签用于控制网页的缓存行为。它可以指定是否缓存页面或在后续访问时重新验证。
<meta http-equiv="expires"> 标签
1<meta http-equiv="expires" content="Tue, 01 Jan 2025 00:00:00 GMT"><meta http-equiv="expires">标签为页面内容设置过期日期。一旦指定日期过后,内容将过时,浏览器会提示获取新版本。
<meta http-equiv="X-UA-Compatible"> 标签
1<meta http-equiv="X-UA-Compatible" content="IE=edge"><meta http-equiv="X-UA-Compatible">标签用于指定 Internet Explorer 的兼容模式。此标签确保浏览器使用适当版本的渲染引擎来显示页面。
<meta http-equiv="content-security-policy"> 标签
HTML中meta标签的http-equiv="content-security-policy"属性是一种在浏览器中应用特定安全规则以增强网页安全性的功能。通过使用此属性,网站开发者可以设置关于资源加载和脚本执行的策略,以防止XSS(跨站脚本)和数据注入等攻击。
什么是 Content-Security-Policy?
Content-Security-Policy(CSP)是一种HTTP头,用于控制网页可以加载哪些外部资源(图片、脚本、样式表等)以及可以执行哪些代码。它通常作为HTTP头发送,但也可以通过使用meta标签在HTML中定义。此方法允许在客户端指定CSP,而不是在服务器端设置头。
例如,您可以在HTML的meta标签中设置CSP,如下所示:。
1<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://example.com; script-src 'self' https://apis.google.com">在该示例中,设置了以下策略:
default-src 'self':基本上,所有资源只从同一来源(自身)加载。img-src https://example.com:图片只能从https://example.com加载。script-src 'self' https://apis.google.com:脚本只能从同一来源或https://apis.google.com执行。
http-equiv 和HTTP头之间的区别
通常,Content-Security-Policy作为HTTP头从服务器发送到客户端。然而,如果你在客户端使用meta标签设置它,可以直接在HTML中编写。
然而,将其设置为HTTP头与使用meta标签指定之间有一些重要的区别:
-
优先级:通过HTTP头发送的CSP优先于
meta标签中指定的CSP。这意味着如果在服务器端设置了CSP,它不会被客户端使用的meta标签覆盖。 -
应用时机:通过HTTP头指定的CSP在页面加载之前生效。另一方面,通过
meta标签指定的CSP在HTML解析时生效,因此资源可能已经被加载。
CSP中可用的指令
在CSP中,各种指令用于指定允许或禁止加载和执行某些类型资源的策略。常见的指令包括以下内容:。
- default-src:指定所有资源的默认来源策略。它适用于未被其他指令指定的资源。
- script-src:指定JavaScript的来源。为了防止XSS攻击,你可以限制从外部站点加载脚本。
- style-src:指定CSS的来源。通过限制从外部来源加载样式表,你可以防止对网站样式的攻击。
- img-src:指定图片的来源。你可以限制从外部来源加载图片。
- connect-src:指定允许用于XMLHttpRequest和WebSocket连接的URL。这可以确保外部API和WebSocket通信的安全性。
通过结合这些指令,您可以为网页上的资源制定详细的策略。
增强安全性的实用CSP设置
以下是增强您网站安全性的CSP设置示例。这可以降低XSS攻击和数据泄露的风险。
1<meta http-equiv="Content-Security-Policy"
2 content="default-src 'self'; script-src 'self' https://trusted-cdn.com; object-src 'none'; style-src 'self'; base-uri 'self'; form-action 'self';">此配置应用了以下策略:
default-src 'self':所有资源仅从相同来源加载。script-src 'self' https://trusted-cdn.com:脚本仅从相同来源或受信任的CDN加载。object-src 'none':不使用object标签。这是为了防止基于Flash或插件的攻击。style-src 'self': 样式表仅从源本身加载。base-uri 'self': 由<base>标签设置的URL基准限于源本身。form-action 'self': 表单提交目标限于源本身。这降低了表单数据被发送到外部网站的风险。
结论
通过在HTML中使用http-equiv="content-security-policy"来定义CSP,可以增强网页的安全性。一个正确配置的CSP是一个强大的工具,可以降低XSS攻击和数据泄漏的风险,并保护您的网站。
您可以在我们的YouTube频道上使用Visual Studio Code跟随上述文章进行学习。 请也查看我们的YouTube频道。