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 Forbidden或404 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.