這個案例的核心責任是提供公開 API 進退光譜的中間選項:persisted queries 家族做法。vendor 創辦人立場、引用時標明利益相關。

觀察

兩篇文章的論點:單一 query 可觸發數千次 resolver、middleware 式安全模型失效;introspection 洩漏內部架構;schema traversal 可越權。解法是把 named operations 存在後端、對外轉成 JSON-RPC 式端點、完全不暴露 GraphQL endpoint。後篇補充:versioning 的組織問題 GraphQL 沒解、self-documenting 是迷思、type safety OpenAPI 也有。

判讀

「GraphQL 當 server-side 查詢語言、對外只開 persisted operations」是介於全開與撤退之間的第三條路、公開 API 進退章需要這個中間選項。來源是賣此方案的 vendor、立場要標明;但攻擊面描述與 Bessey(C22)、HackerOne(C25)獨立互證。

對應大綱

執行成本與攻擊面(persisted queries 段、已引用)與 公開 API 的 GraphQL 進退(中間路線段、已引用)。邊緣偏反例。

下一步路由

模組十一案例庫

引用源