0

我正在使用 CodeIgniter 框架进行开发。

我有一个图片上传文件夹,其权限设置为 755。我的主机使用的是 suPHP,因此网站用户可以上传到它。

我刚刚注意到,当用户上传图片时,IMAGE 文件权限为 666。

我使用用户名命名图像,因此有人很容易猜到用户名为“hello”的人会将图像存储在名为“hello.jpg”或“hello.png”的目录中</p>

这不安全吗?恶意访问者是否可以从该图像上传目录中删除或替换成员的图像?

我是否必须将图像随机命名,然后将该随机图像名称存储到该用户的数据库表行中,以便我知道哪个图像名称与哪个用户匹配?

4

1 回答 1

0

当然,您应该始终验证任何用户输入,但在这种情况下,您可以简单地检查当前用户的用户名是否与用作文件名的名称匹配(假设您在允许用户上传之前对用户进行了身份验证),并确保他们没有表示通过他们输入的任何内容来指定文件名。

简而言之,仅使用已知用户信息、服务器端数据对文件进行身份验证和命名。

于 2012-11-06T11:36:47.380 回答