我正在使用CodeIgniter框架进行开发。
我有一个图片上传文件夹,权限设置为755.我的主机正在使用suPHP,因此网站用户可以上传到它。
我刚注意到,当用户上传图片时,IMAGE文件权限为666。
我使用用户名命名图像,因此有人猜测用户名为'hello'的人会在该目录中存储名为'hello.jpg'或'hello.png'的图像
这不安全吗?恶意访问者是否可以从该图像上传目录中删除或替换成员的图像?
我是否必须随机命名图像,然后将该随机图像名称存储到该用户的db表行中,以便知道哪个图像名称与哪个用户匹配?
答案 0 :(得分:0)
当然,您应该始终验证任何用户输入,但在这种情况下,您可以只检查当前用户的用户名是否与用作文件名的名称相匹配(假设您在允许用户上传之前对用户进行身份验证),并确保他们无法通过他们输入的任何内容指定文件名。
简而言之,使用已知的用户信息',仅对服务器端数据进行身份验证和命名。