路由参数是 URL 编码的
Route parameters are URL-encoded
我正在试用 Lumen,我已经写了我的第一条路线:
$app->get('hello/{name}', function ($name) {
return "Hello, $name!";
});
到目前为止我读过的文档只字未提框架如何处理 HTML-injection 所以我做了一个快速测试:
http://example.com/hello/<u>café
... 显示如下:
Hello, %3Cu%3Ecaf%C3%A9!
换句话说,路由参数在到达我的函数时不会被 URL 解码。我试过的其他框架为您解码所有内容,就像您正在阅读 $_GET
.
我的设置是否有问题(Apache/2.4、mod_php 和 mod_rewrite 与框架捆绑的默认 .htaccess
)或者是预期输入?
这是故意的 bug/feature(参见 Route parameters are URL-encoded #238 以供参考)。不知道设计决策背后的基本原理。
我正在试用 Lumen,我已经写了我的第一条路线:
$app->get('hello/{name}', function ($name) {
return "Hello, $name!";
});
到目前为止我读过的文档只字未提框架如何处理 HTML-injection 所以我做了一个快速测试:
http://example.com/hello/<u>café
... 显示如下:
Hello, %3Cu%3Ecaf%C3%A9!
换句话说,路由参数在到达我的函数时不会被 URL 解码。我试过的其他框架为您解码所有内容,就像您正在阅读 $_GET
.
我的设置是否有问题(Apache/2.4、mod_php 和 mod_rewrite 与框架捆绑的默认 .htaccess
)或者是预期输入?
这是故意的 bug/feature(参见 Route parameters are URL-encoded #238 以供参考)。不知道设计决策背后的基本原理。