跳到主要内容

4.13. 与 Web Browsing 共存

4.13. 与 Web Browsing 共存 (Coexisting with Web Browsing)

即便 application 并不打算通过 Web browser 使用, 其 resource 也可能被 browser 意外访问 (例如由于 misconfiguration) 或恶意访问. application 需要考虑在这种情况下如何行为.

对于不打算与 browser 一起使用的 application:

  • 当被 browser 访问时, application SHOULD 返回适当的 error message (例如 403 Forbidden404 Not Found).

  • application SHOULD 包含 security header (例如 Content-Security-Policy [CSP], X-Frame-Options 等), 以限制 browser 在确实访问该 application 时能做什么.

  • application SHOULD 意识到 browser-specific behavior, 例如自动跟随 redirect, 执行 JavaScript, 以及发出 prefetch request.

对于打算同时支持 API client 和 Web browser 的 application:

  • application SHOULD 使用 content negotiation 为不同 client 提供适当 representation.

  • application SHOULD 确保 browser-based access 不会产生 security vulnerability (见 Section 6).

  • application SHOULD 考虑为 browser 和 non-browser access 使用不同 URL 或 subdomain, 以允许不同 security policy.

application SHOULD 意识到 Cross-Origin Resource Sharing (CORS) [FETCH], 以及它如何影响 browser-based access 对 resource 的访问. CORS 可用于控制允许哪些 origin 从 browser 访问 resource.