使用未知用户代理在Symfony中清空上载的文件

时间:2018-01-04 14:10:25

标签: php symfony user-agent

我正在使用Symfony收集REST API,我不断收到空上传文件的例外情况。在每天约有5000名用户的应用程序中,它每天发生大约5-10次。

这是相关代码:

$receipt = $request->files->get('receipt');

if (!$receipt || !($receipt instanceof UploadedFile) || !$receipt->isValid()) {
    throw new \Exception('No uploaded receipt image. Maybe the image is too large?');
}

我已将upload_max_filesizepost_max_size增加到非常高的值,但错误仍然存​​在。我注意到用户代理总是“奇怪”:

User-Agent: myappname/104 CFNetwork/808.0.2 Darwin/16.0.0

其中myappname是我的移动应用程序的名称(仅限最后一部分,没有com.mycompany.myappname)。它可能是模拟器还是黑客攻击?

1 个答案:

答案 0 :(得分:0)

如果upload_max_filesize大于post_max_size然后增加post_max_size那么它将大于upload_max_size,如果post_max_size的值大于memory_limit,那么增加memory_limit然后它将大于post_max_size。 如果仍然发生,那么如果您的前端和后端位于不同的域上,请尝试使用ip或域限制REST API 用户“Nelmio CORS”设置

# Nelmio CORS
nelmio_cors:
    defaults:
        allow_origin:  ["%cors_allow_origin%"]
        allow_methods: ["POST", "PUT", "GET", "DELETE", "OPTIONS"]
        allow_headers: ["content-type", "authorization"]
        max_age:       3600
    paths:
        '^/': ~

使用composer install nelmio / cors-bundle 或类似的。