【发布时间】:2016-04-09 04:59:08
【问题描述】:
我在使用 Yii2 框架上传文件时遇到了问题,但我认为这个问题比框架问题更深入。我有一个允许用户上传 pdf 文件的应用程序,直到这里我的应用程序工作正常,但是当一些聪明人将文件扩展名从任何内容重命名为 pdf 时,我遇到了麻烦。该应用程序没有验证这种技巧。
我尝试验证 mimetype,但没有成功。现在我正在寻找另一种方法。
有人知道如何阻止这种作弊吗?
【问题讨论】:
-
最可靠的方法是在php pdf库中打开文件,然后将其保存到新位置——如果不是pdf文件,pdf阅读器将失败/抛出异常。这比仅仅检查 mime 类型要多得多(正如@dev0 在上面链接的问题中提到的那样)
-
@dev0 不适合我。该应用程序不断上传。
-
@Steve 我害怕听到这个。此更改将使用户的流程更加困难。
-
这对你来说肯定会做更多的工作,但用户不应该真正注意到 - 它会慢一点,但我想这是异步完成的(例如 ajax),所以多花一秒钟左右看到进度条显示“验证文件类型”不会有太大区别
标签: php file-upload yii2