问题标签 [symfony-http-foundation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

php - 从 url 获取两个字段并将它们转换为变量以查询搜索

我正在尝试在 api enpoint 中获取这两个字段,以便它基于它进行查询。例子。

我的控制器按名字或姓氏搜索。但我想创建一个端点,如果它在“克里斯莫雷诺”中传递,它会查询数据库

这是我的 $filter 代码

我希望能够在我的过滤器中捕获两个字段(克里斯和莫雷诺),以便我可以将其传递给我的查询,以便它可以检查使用名字和姓氏签入的人(缩小搜索范围)

0 投票
0 回答
59 浏览

php - 为什么 Symfony 的 UploadedFile `getClientOriginalName()` 被认为是不安全的?

文档仅声明它是用户提供的输入,因此不可信。这很有意义,因为我们从不信任用户输入,但恶意用户会以何种方式对上传文件的此请求参数或其他请求参数造成损害?

我要求我可以知道何时何地可以安全使用此信息,何时不安全,以及在我必须至少参考它时如何减轻影响。

0 投票
1 回答
531 浏览

php - 过滤嵌套属性:点到下划线重定向

我正在使用 Symfony 和 API 平台,我想过滤嵌套属性

虽然这看起来很简单,但当我去:

http://localhost:8000/api/offers?product.color=red

请求被重定向到:

http://localhost:8000/api/offers?product_color=red.

点被下划线代替。

我不完全理解为什么会发生这种情况,但是关于这种行为有一个封闭的问题:

关闭它,因为这只是 PHP 解析 HTTP 请求的方式,我们不会解决这个问题。

如何过滤嵌套属性?

0 投票
1 回答
147 浏览

php - Symfony 路由允许使用逗号来配置点

我有一个路线配置:

根据规范,仅允许1.1, 1.2,1.3字符串作为 some_strings 参数有效。

所以我打电话myhost/special/path/1.1- 它工作得很好。

但由于某种原因,我可以调用myhost/special/path/1,1(注意逗号)——它以某种方式符合要求并将数据传递给控制器​​。

如果我调用一些非法要求myhost/special/path/2.3,它应该给出 404。

使用 Symfony 3.4 依赖项。

0 投票
1 回答
210 浏览

laravel - Laravel 在带有路径前缀的反向代理后面生成错误的路由

在 Traefik 后面运行 Laravel 作为反向代理,带有路径前缀(例如/api/=> Laravel)。

Laravel 由 Nginx 和 Php-fpm 提供服务。

Laravel 用于Symfony HTTP foundation生成路由 URL。

Symfony 没有正确看到基本路径,并生成没有/api/前缀的 URL。

作为一个肮脏的解决方法,我通过在 index.php 上的第一行来修复它:

如何强制使用完整 URL 或基本路径?

0 投票
1 回答
650 浏览

symfony - 如何使用 Symfony 在我的控制器中提供来自 HttpClient 的相同响应?

我有一个控制器,它必须将接收到的请求(更改一些查询参数)转发到另一台服务器,并返回它的响应(具有相同的标头、状态和正文)。

我决定使用 HttpClient 来做到这一点。

问题是 HttpClient 转换了内容(即:放气 gzip 请求),它破坏了输出响应。

这是示例的一部分:

考虑到第二个服务器返回一个 gzip 压缩的内容,响应被破坏了,因为它会保留响应头(内容类型)但 $body 不会完全相同,因为 HttpClient 帮我缩小内容的好处。

问题是:有没有办法告诉 HttpClient 不要触摸我的响应正文?

或者:有没有更好的方法来制作这个“代理”控制器动作?

0 投票
1 回答
316 浏览

laravel - Laravel 8 中的功能测试使用 withHeader 设置主机无效?

由于我的项目已经部署了多个域名,所以需要测试的API接口是使用api.example.test域名作为入口。

使用$this->get('/v1/ping')in Feature Test 会请求到www.example.test,我希望在in 中$this->withHeader('Host', config('domain.api_domain'))统一设置自动请求 API 相关的测试到Go in。setUpApiFeatureBaseTestCaseapi.example.test

但是,在实践中,我发现这是无效的。通过跟踪代码,我发现了两个可能导致无效Host设置的代码:

第一名(Laravel):

Laravel 框架中的代码src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:503$uri ='/v1/ping' ,传入参数$this->prepareUrlForRequest($uri),得到一个完整的 Url,默认 Host,返回值为http://www.example.test/v1/ping.

第二名(Symfony):

在 Symfony HttpFoundation 组件Request.php:355$uri的代码中,会先使用解析进来host的,然后默认覆盖在 Header 中Host

以上两个代码最终导致了HostI set bywithHeader失败。显然,在这段代码逻辑中,不能认为 Symfony HttpFoundation Component 选择 Host in conflict 是错误的,但是我提交这个问题issue给 Laravel Framework 时就关闭了。

我不知道这个问题是abug还是feature

最后,很抱歉我的问题打断了大家的时间,但是如果对这个问题有结论,请告诉我应该怎样更合适?

我目前的做法是$this->get($this->api_base_url . '/v1/ping'),但我不认为这是elegant

3Q!!1

代码示例

0 投票
0 回答
147 浏览

symfony - 没有指定用户代理的 Symfony HttpFoundation\Request 导致 403 Forbidden

我正在使用 symfony 创建一个 API 来更新一些数据集。其中一个可能的更新来自第三方通过不包含用户代理规范的 HTTP 请求。因此,调用返回 403 Forbidden 错误。

我将代码保持为最简单的形式(见下文):

我确信问题来自用户代理,我已经能够通过删除这个标题项来使用邮递员重现它。

知道如何解决这个问题吗?

谢谢 !

阿德里安

0 投票
0 回答
274 浏览

database - 数据库外观返回“传递给 Symfony\Component\HttpFoundation\Response::setContent() 的参数 1 必须是字符串类型或 null,给定对象”

我需要从我的 LeadRepository 类中显示一个潜在客户注册。

但我得到的只是这个错误:

0 投票
0 回答
49 浏览

php - 在 drupal 8 中,我如何为未发布的页面创建 410 页面状态

对于未发布的页面,当前行为是 404 错误,我希望仅对先前发布和随后未发布的页面出现 410 错误。

可行吗?

谢谢你。