Image 用用户名命名上传的图像?

Image 用用户名命名上传的图像?,image,security,upload,permissions,Image,Security,Upload,Permissions,我正在使用CodeIgniter框架进行开发 我有一个图像上传文件夹,权限设置为755。我的主机正在使用suPHP,因此站点用户可以上传到它 我刚刚注意到,当用户上传图像时,图像文件权限是666 我使用用户名来命名图像,因此很容易让人猜测用户名为“hello”的人会在名为“hello.jpg”或“hello.png”的目录中存储图像 这不安全吗?恶意访问者是否可以从图像上载目录中删除或替换成员的图像 我是否必须将图像命名为随机名称,然后将该随机图像名称存储到该用户的db表行中,以便知道哪个图像名

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

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

我刚刚注意到,当用户上传图像时,图像文件权限是666

我使用用户名来命名图像,因此很容易让人猜测用户名为“hello”的人会在名为“hello.jpg”或“hello.png”的目录中存储图像

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


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

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


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

我只是将他们上传的任何图像重命名为他们的用户名。因此,您的意思是,只要用户登录并通过身份验证,我上面描述的场景是安全的?我只向登录到服务器的人显示图像上传表单d然后我将图像从他们在计算机上的名称重命名为他们的用户名。由于我使用用户名上传图像,因此很容易让人猜到图像文件名。我担心未登录或未经身份验证的人可能会对该图像进行恶意攻击,因为他们很容易猜到名称。唯一的原因是“未登录或未经身份验证的人可能会对该图像进行恶意操作”是指您为他们提供了一种方法,例如通过接受和使用他们输入表单中的数据。如果您仅使用“安全”信息、您已经拥有的信息、链接到用户的信息、您已经用于对其进行身份验证的信息,以及嗯,你应该没有问题。我不能真正评论你的系统作为一个整体,但只要你遵循这些做法,你应该能够提供这样的保障。希望这有帮助!好吧,如果一个人能猜到另一个用户的形象会有什么后果?