|
Post by account_disabled on Jan 28, 2024 21:10:39 GMT -7
网络 如何开始使用您的网站内容安全策略 开源 虚拟主机和域名 网络安全 克雷格·巴克勒 2017 年 7 月 3 日 分享 安全挂锁 Pause Next Unmute Current Time 0:07 / Duration 2:00 Fullscreen 本文是与 SiteGround 合作创建的系列文章的一部分。感谢您对合作伙伴的支持,使 SitePoint 成为可能。 网络基于“同源”策略。只有上的代码可以访问 中 cookie、localStorage、Ajax 请求等中的数据。它与其他域隔离,因此来自任何访问尝试都将被拒绝。 不幸的是,事情从来没有那么简单。现代网站非常复杂,并且加载各种第三方组件、样式和脚本。从另一个域加载的脚本在当前页面的上下文中运行,并且可以执行它喜欢的任何操作。该社交网络按钮可以监控访问者、劫持登录 cookie、更改页面内容等等。即使您信任第三方站点,您也可能成为中间人攻击的受害者,其中脚本在到达您之前已被更改。 或者,它可能允许用户发起自己的跨站点脚本攻击(XXS)。 默认情况下,浏览器实现一种随心所欲的方法。幸运的是,可以使用内容安全策略 (CSP) 来应用限制,以防止意外的安全问题。CSP 告诉浏览器允许什么,例如在 上运行 JavaScript,但只 WhatsApp 号码数据 能从文件而不是内联<script>标记运行。 测试您的网站 Learn to Code with JavaScript 要检查您的网站是否实施了 CSP,请访问observatory.mozilla.org,输入页面 URL 并点击Scan Me。那些没有 CSP 保护的人可能会得到F(尽管还进行了各种其他检查)。 CSP 对于银行、在线商店、社交网络和任何实施用户帐户的网站都至关重要。如果您的网站不使用第三方脚本、字体、媒体、小部件或分析,则不太必要,但您能确定它永远不会吗? 实施内容安全策略 您的开发人员或网络托管服务商必须将内容安全策略添加到每个页面。 它是使用由服务器端语言 服务器配置文件很实用,因为它们将相同的标头应用于子文件夹层次结构中的所有页面。<head>但是,您还可以使用标签在任何页面的HTML 中定义策略 如果您没有配置服务器的权限或需要在每个页面上使用不同的策略,则这可能是必要的。 内容安全策略定义 Learn to Code with JavaScript 现在是复杂的部分。CSP 为不同类型的内容定义允许的域和上下文的白名单。 假设您只想允许从您的域加载脚本。您可以使用以下 CSP (请不要真正执行此操作 - 这只是一个示例!): script-src 'self'; 然后您意识到您还从 CDN 加载第三方库,该库可以出现在 域通配符将添加到空格分隔的列表中然后,您会记住一些在页面上内联运行的脚本 - 我们也可以定义它我们现在有一个脚本政策。但是,我们没有定义其他类型,因此所有样式表、图像、字体等都将无法加载。
|
|