在用户名后命名上传的图像?

时间:2012-11-06 11:32:05

标签: image security upload permissions username

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

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

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

我使用用户名命名图像,因此有人猜测用户名为'hello'的人会在该目录中存储名为'hello.jpg'或'hello.png'的图像

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

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

1 个答案:

答案 0 :(得分:0)

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

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