支持 HTTP QUERY 方法 (RFC 10008)
作者: sanya-misharin创建于 2026年8月14日更新于 2026年8月16日
标签type:feature
哪些步骤将复制问题?
向通过yii\web\Url Rule ' /yii\rest\ Url Rule ' 路径的动作发送带有Content-Type:应用程序/x-www-form-urlencoded'和体内过滤参数的UERY/books'请求。
——什么是预期的结果?
RFC 10008(拟议标准,2026年6月)将UERY'定义为一种**安全、idempot、可缓存**方法,其参数在请求中旅行。 框架应把它视为安全,对待GET ' 和`HEAD ' 的方式也应如此。
你得到什么代替吗?
运行和身体剖析已经起作用:请求:获得方法()'通过任何动词,Url Rule:$verb ' 匹配任意动词,而`GetBodyParams()'则通过“Content-Type”来解释,而不论方法如何。 但所有硬码安全方法清单都认为“UERY”不安全:
yii\web\请求:$csrfTokenSafeMethods = ['GET'、'HEAD'、'OPTIONS'] (框架/web/request.php:136),所以UERY'请求需要CSRF的标志。 可配置,但默认错误.- “yii\ filters\HttpCache:: unfore Action () 硬码 ‘$活字' ="GET" =====================================================================================================================================================================================================================
yii\ filters\ Cors:$cors['access-control-request-Method']未列出'UERY'(框架/filters/Cors.php:97)。yii\rest\Url Rules:$patterns ' 没有UERY'条目(框架/rest/UrlRules.php:120),它目前需要`extraPatterns'。
建议的最低限度:在安全方法默认值(csrfTokenSafeMethods',Cors')中增加UERY',由HtpCache'来处理,并考虑与其他动词对称的`Get IsQuery ()'存取器。
关于参考,Symfony在7.4(symfony/symfony#61173)中增加了"UERY"支持,API平台有一个开放的PR(api-plaform/core#8349).
补充信息
问题A |-----------. QQ Yii版本 ^ 2.0.53 (主) PHP 版本 任意 任何操作系统
内容来源: yiisoft/yii2