当前位置: 首页 > 后端技术 > Node.js

SAP电商云SpartacusUI中的ContentSecurityPolicy

时间:2023-04-03 20:25:11 Node.js

内容安全策略(ContentSecurityPolicy,CSP)是一个工具,允许开发者在通过网络浏览器访问Storefront页面时指定允许加载哪些位置和类型H.内容安全策略可用于锁定店面应用程序并降低跨站脚本(XSS)、代码注入和点击劫持攻击(clickjacking)等内容注入漏洞的风险,以及降低您的执行权限店面应用程序。TargetPolicy指令可以使用HTTP响应头(服务器可以发送多个CSPHTTP头字段,带有给定资源的表示,服务器可以发送不同的CSP头字段值,带有相同资源或不同资源的不同表示)或HTML元标记,规范定义了以下HTTP标头:Content-Security-Policy:由W3C规范定义为标准标头,由Chrome25及更高版本、Firefox23及更高版本、Opera19及更高版本使用。X-Content-Security-Policy:由Firefox使用直到版本23和InternetExplorer版本10(部分实现内容安全策略)。X-WebKit-CSP:Chrome使用到版本25default-src:定义所有资源类型的加载策略,以防未定义特定于资源类型的指令(回退),script-src:定义受保护资源可以执行的脚本,csp是一种W3C规范,它提供了指示客户端浏览器允许从哪个位置和/或哪种类型的资源加载的可能性。为了定义加载行为,CSP规范使用“指令”,其中指令定义目标资源类型的加载行为。在Content-Security-Policy安全标头中,您可以指定指令来定义目标资源类型的加载行为。以下是推荐的指令和相应的目标:default-src'self';style-src'self''不安全内联';img-src'self'支持的指令是:default-src:为所有资源类型定义负载策略,以防未定义特定于资源类型的指令(回退),script-src:定义受保护资源可以执行的脚本。Backoffice中的设置除了SAPCommercePlatform提供的安全机制外,BackofficeFramework还提供了额外的安全功能来确保Storefront应用程序的安全。BackofficeFramework中的安全标头告诉您的浏览器在处理您网站的内容和数据时的确切行为。我们确保在BackofficeFramework应用程序上下文中应用安全标头,例如,使用/backoffice/路径。来自/backoffice/以外的资源的响应不一定具有这些标头。在与BackofficeFramework的网络通信中,每个响应都有以下标头:HeaderContent-Security-Policy(CSP):default-src'self';script-src'self'''unsafe-inline''unsafe-eval';连接源“自我”;img-src'自我'数据:;style-src'self''不安全内联';font-src'self'',设置网站加载内容的审批支持图片、HTML框架、音频文件等来源。可以防止XSS、代码注入和clickjackingHeaderX-XSS-Protection:1;mode=block,当检测到反射XSS时阻止页面加载。旧类型的浏览器最需要它。值为1启用XSS过滤。当使用其他值时,不清理页面。添加值块时,页面不会呈现。设置值报告报告URI时,页面会被清理并发送违规报告。可以防止Cookies、令牌和XSS,例如JavaScriptKeyloggerHeaderStrict-Transport-Security(HSTS):max-age=31536000;includeSubDomains,自动将http链接转换为https,当无法保证连接的安全性时,比如当TLS证书不可信时,不允许用户访问web应用,并返回错误。协议降级攻击,cookie劫持。HeaderX-Frame-Options:SAMEORIGIN。DENY设置可以防止在任何地方显示页面,甚至不在同一页面上。SAMEORIGIN允许将页面嵌入到为其提供服务的站点的框架中。可以防止点击劫持和将页面嵌入其他页面。可以通过更改project.properties文件来覆盖默认值,从而减少限制:#securityheadersbackoffice.response.header.X-Frame-Options=SAMEORIGINbackoffice.response.header.Strict-Transport-Security=max-age=31536000;includeSubDomainsbackoffice.response.header.X-XSS-Protection=1;模式=blockbackoffice.response.header.X-Content-Type-Options=nosniffbackoffice.response.header。Content-Security-Policy=default-src'self';script-src'self''unsafe-inline''unsafe-eval';连接源“自我”;img-src'自我'数据:;style-src'self''unsafe-inline';字体源“自我”