SAP 电商云 Spartacus UI 里的 Content Security Policy

简介: SAP 电商云 Spartacus UI 里的 Content Security Policy

内容安全策略(Content Security Policy,简称 CSP)是一种工具,允许开发人员指定在通过 Web 浏览器访问 Storefront 页面时允许加载哪些位置和哪些类型的资源。


可以使用内容安全策略来锁定店面应用程序,并降低内容注入漏洞的风险,例如跨站点脚本 (XSS)、代码注入和点击劫持攻击(clickjacking),以及降低您的店面应用程序执行的权限。


Target Policy

指令可以使用 HTTP 响应标头(服务器可以发送多个具有给定资源表示的 CSP HTTP 标头字段,并且服务器可以发送具有相同资源或不同资源的不同表示的不同 CSP 标头字段值)或 HTML Meta 标记,下面的 HTTP 标头由规范定义:


Content-Security-Policy :由 W3C 规范定义为标准标头,由 Chrome 25 及更高版本、Firefox 23 及更高版本、Opera 19 及更高版本使用。


X-Content-Security-Policy :Firefox 直到版本 23 和 Internet Explorer 版本 10(部分实现内容安全策略)使用。


X-WebKit-CSP : Chrome 使用直到版本 25


default-src :为所有资源类型定义加载策略,以防未定义资源类型专用指令(回退),

script-src :定义受保护资源可以执行的脚本,


csp 是一个 W3C 规范,提供了指示客户端浏览器从哪个位置和/或允许加载哪种类型的资源的可能性。 为了定义加载行为,CSP 规范使用“指令”,其中指令定义目标资源类型的加载行为。


在 Content-Security-Policy 安全标头中,可以指定定义目标资源类型的加载行为的指令。 以下是推荐的指令和相应的目标:


default-src ‘self’; style-src ‘self’ ‘unsafe-inline’; img-src ‘self’


支持的指令有:


default-src :为所有资源类型定义加载策略,以防未定义资源类型专用指令(回退),

script-src :定义受保护资源可以执行的脚本。

在 Backoffice 里的设置

除了 SAP Commerce Platform 提供的安全机制外,Backoffice Framework 还提供额外的安全功能来确保 Storefront 应用的安全性。


Backoffice Framework 中的安全标头可以准确地告诉您的浏览器在处理您网站的内容和数据时的行为方式。


我们确保在 Backoffice Framework 应用程序上下文中应用安全标头,例如,与 /backoffice/* 路径一起应用。 来自 /backoffice/* 以外的资源的响应不一定具有这些标头。 在与 Backoffice Framework 的网络通信中,每个响应都有以下标头:


Header Content-Security-Policy (CSP): default-src ‘self’; script-src ‘self’’ ‘unsafe-inline’ ‘unsafe-eval’; connect-src ‘self’’; img-src ‘self’ data:; style-src ‘self’ ‘unsafe-inline’; font-src ‘self’’, 设置要在网站上加载的内容的批准来源,支持例如图像、HTML 框架和音频文件。可以预防 XSS, code injection 和 clickjacking


Header X-XSS-Protection:1; mode=block,当检测到反射 XSS 时阻止页面加载。 旧类型的浏览器最需要它。 值 1 启用 XSS 过滤。 使用其他值时,页面不会被清理。 添加值块时,不会呈现页面。 当设置值报告 reporting URI 时,页面会被清理并发送违规报告。可以预防 Compromising cookies, tokens, and XSS such as JavaScript Keylogger


Header Strict-Transport-Security (HSTS):max-age=31536000; includeSubDomains,自动将 http 链接转为 https,当连接的安全性无法保证时,例如 TLS 证书不可信时,不允许用户访问 Web 应用程序并返回错误。可以预防 Protocol downgrade attacks, cookies hijacking.


Header X-Frame-Options: SAMEORIGIN. DENY 设置不允许在任何地方显示页面,即使在同一页面上也不允许。SAMEORIGIN 允许将页面嵌入到提供该页面的站点的框架中。可以预防 Clikjacking, and embedding a page into other pages.


可以通过更改 project.properties 文件来覆盖默认值,从而减少限制:

#security headers
backoffice.response.header.X-Frame-Options=SAMEORIGIN
backoffice.response.header.Strict-Transport-Security=max-age=31536000; includeSubDomains
backoffice.response.header.X-XSS-Protection=1; mode=block
backoffice.response.header.X-Content-Type-Options=nosniff
backoffice.response.header.Content-Security-Policy=default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self' data: ; style-src 'self' 'unsafe-inline'; font-src 'self'
相关文章
|
6月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
6月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
6月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
6月前
|
存储 安全 测试技术
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
使用 Visual Studio Code 创建 SAP UI5 项目遇到 self-signed security certificate 相关问题
|
6月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
|
6月前
|
存储 监控 数据库
SAP 电商云 product catalog 从 staged 到 online 两个版本之间的同步
SAP 电商云 product catalog 从 staged 到 online 两个版本之间的同步
|
6月前
|
监控 安全 数据管理
SAP 电商云 Product catalog 的 staged 和 online 两种版本的设计理念
SAP 电商云 Product catalog 的 staged 和 online 两种版本的设计理念
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
|
6月前
|
开发者 UED
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
关于 SAP UI5 sap.m.Column 的 demandPopin 属性
|
6月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版