安全性是任何基于 Web 的业务的关键组成部分,因为在线应用可能以多种方式遭受攻击或泄露。在提交前确保您的应用是安全的,以保护商家免受潜在风险。
安全性
-
您的应用不得收集 Shoplazza 用户凭据。如 Shoplazza API 鉴权中所述,公有应用必须使用 OAuth。
-
如果您的应用存储自己的凭据,则必须仅存储加盐的密码哈希值,而不是实际密码,如开放 Web 应用安全项目网站所述。
-
您的应用必须防范常见 Web 安全漏洞。
-
应用必须通过使用有效 TLS 证书的 HTTPS 提供服务。
-
您的应用不得不必要地暴露网络服务。
-
您的应用不得暴露其共享密钥。
-
您的应用必须生成安全 token,包括过期时间和搜索索引保护(如适用)。
-
您的应用不得在 Shoplazza 结账流程外处理支付或订单。
-
您的应用不得修改 Shoplazza 的结账流程。
常见 Web 安全漏洞
防范常见 Web 安全漏洞
Shoplazza 要求所有第三方应用防范常见 Web 安全漏洞,包括但不限于 OWASP Top 10。OWASP Top 10 是由开放 Web 应用安全项目(OWASP)发布的 Web 应用最关键安全风险清单,是开发者和 Web 应用安全专家的标准意识文档。
如果我们在应用审核期间发现您应用中的任何漏洞,您的应用将被拒绝,您需要在重新提交审核之前修复这些漏洞。
OWASP Top Ten 清单包含理解常见 Web 应用漏洞及其防护方法的所有必要信息,还包括 OWASP 速查表和外部参考资料。另一个可用资源是 Web Security Academy,一个免费的 Web 应用安全在线培训中心。Web Security Academy 包含互动实验室,可以让您在实践中检验所学知识。
TLS 证书
通过有效 TLS 证书以 HTTPS 提供应用服务
客户端(如商家的 Web 浏览器)与您的应用服务器之间交换的所有数据都应使用传输层安全(TLS)进行加密,确保传输的任何数据只能由您的应用服务器读取。TLS 证书用于在数据传输过程中保护终端用户信息,并验证网站的组织身份。由 TLS 证书保护的网站将在浏览器地址栏显示 HTTPS 和小锁图标。
如果您的 TLS 证书在审核过程中无法验证,您的应用将被拒绝,直到问题解决。
如果您还没有有效的 TLS 证书,可以从 Let's Encrypt 免费获取,这是一个免费、自动化和开放的证书颁发机构。但是,任何受信任的证书颁发机构颁发的 TLS 证书均可接受。您不能使用自签名证书。
创建 TLS 证书后,您可以访问 SSL Checker 并输入您应用的主机名来验证其是否正确安装。
不必要地暴露网络服务
为确保应用的安全性,除非服务对其功能至关重要,否则避免公开暴露任何服务。不应暴露的常见服务包括 MySQL、Redis、Memcached 和 Elasticsearch。在应用审核过程中,我们使用安全工具 Nmap 识别开放端口来发现可公开访问的服务。
如果我们的扫描在审核期间检测到意外的开放端口,您将收到通知,并需要重新评估这些服务是否必须保持公开可访问。如果服务需要保持可访问,您将收到一个 Google 表单,需要说明以下内容:
- 检测到的开放端口上运行的是什么服务
- 每个服务为何对应用正常运行是必要的
- 为何服务必须公开可访问
- 已实施哪些安全措施以确保服务对 Shoplazza 商家和买家是安全的
安全 Token
生成安全 Token
如果您的应用依赖 token 对用户进行鉴权,则 token 必须随机生成,且至少具有 128 位的熵,以确保 Shoplazza 商家数据的安全。在 token 长度受限的某些情况下,我们允许 64 位。
对于将公开可访问的 token(例如作为 URL 参数包含的 token),请确保满足以下要求:
- 过期时间不超过七天。
- 防止被第三方泄露或索引。
如果您应用中的 token 熵不足、不会过期,或容易被第三方泄露或索引,您的应用将在审核过程中被拒绝。识别的问题必须在重新提交前解决。
以下链接可用于为多种流行编程语言生成安全随机 token:
当 token 用于鉴权访问私有信息时,您必须确保私有信息不会被搜索引擎索引。Google 的指南使用"noindex"阻止搜索索引解释了如何正确配置 HTML meta 标签以防止搜索索引。此外,任何接受 token 的应用 URL 必须确保 HTTP 响应中包含值为 origin-when-cross-origin 或(更优先地)no-referrer 的 Referrer-Policy header。