Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何命名图像,使其他图像的名称不容易猜测?_Image_Security - Fatal编程技术网

Image 如何命名图像,使其他图像的名称不容易猜测?

Image 如何命名图像,使其他图像的名称不容易猜测?,image,security,Image,Security,用户将能够上传图像,并且名称将被更改,这样它就不会与另一个文件同名。使用一个简单的约定,比如称它们为1.jpg、2.jpg、3.jpg等等,意味着其他用户可以简单地输入4.jpg,然后看到其他人的图像 是否有一种方法或约定可以在确保猜测图像名称很困难的情况下命名不同的图像?您可以编写一个PHP脚本,每次生成一些伪随机图像名称,如21412adfs.jpg 更好的方法是,获取上传文件的名称,并在其上附加一个6位数的随机数,比如19353-toy-car.png,您甚至可以将6位数替换为表示上传图像

用户将能够上传图像,并且名称将被更改,这样它就不会与另一个文件同名。使用一个简单的约定,比如称它们为1.jpg、2.jpg、3.jpg等等,意味着其他用户可以简单地输入4.jpg,然后看到其他人的图像


是否有一种方法或约定可以在确保猜测图像名称很困难的情况下命名不同的图像?

您可以编写一个PHP脚本,每次生成一些伪随机图像名称,如21412adfs.jpg

更好的方法是,获取上传文件的名称,并在其上附加一个6位数的随机数,比如19353-toy-car.png,您甚至可以将6位数替换为表示上传图像日期的数字


命名约定可以是您真正想要的任何形式,任何最适合您的设置和归档目的的形式。将日期包含在图像名称中可能很好,因为您可以根据图像的日期轻松地将图像排序到不同的上载文件夹中。

您可以编写一个PHP脚本,每次生成一些伪随机图像名称,如21412adfs.jpg

更好的方法是,获取上传文件的名称,并在其上附加一个6位数的随机数,比如19353-toy-car.png,您甚至可以将6位数替换为表示上传图像日期的数字


命名约定可以是您真正想要的任何形式,任何最适合您的设置和归档目的的形式。将日期包含在图像名称中可能会很好,因为您可以根据图像的日期轻松地将图像排序到不同的上载文件夹中。

您最好使用散列函数生成可以使用的随机字符串。例如,在PHP中,您可以使用以下内容

$filename=md5“一些随机字符串”.rand0200000.time

MD5有时会生成相同的随机字符串,这会导致文件名冲突,但发生这种情况的可能性非常小,如果是这样的话。。。您所要做的就是再次运行名称生成—一行中发生两次冲突的可能性极低

确保您将“一些随机字符串”更改为只有您知道并在站点上使用的内容。这就是所谓的站点salt,它意味着局外人将更难猜测您生成的文件名的名称,因为他们无法预测和反向工程您在混合中输入的所有内容来生成它


希望能有所帮助?

最好的办法是使用哈希函数生成一个可以使用的随机字符串。例如,在PHP中,您可以使用以下内容

$filename=md5“一些随机字符串”.rand0200000.time

MD5有时会生成相同的随机字符串,这会导致文件名冲突,但发生这种情况的可能性非常小,如果是这样的话。。。您所要做的就是再次运行名称生成—一行中发生两次冲突的可能性极低

确保您将“一些随机字符串”更改为只有您知道并在站点上使用的内容。这就是所谓的站点salt,它意味着局外人将更难猜测您生成的文件名的名称,因为他们无法预测和反向工程您在混合中输入的所有内容来生成它


希望有帮助?

用户是否为图像输入名称?如果是这样,您可以根据它们的名称生成一个哈希并使用它。否则,您可以使用一个好的方案自己生成一个名称,并使用其哈希名称存储图像。用户是否输入图像的名称?如果是这样,您可以根据它们的名称生成一个哈希并使用它。否则,您可以使用一个好的方案自己生成一个名称,并使用其哈希名称存储图像。当从外部用户上传时,除非需要保留原始文件名,否则最好将其删除。主要原因是,除非你大量清除危险建筑的名称,如../,否则它会开启一个可能的攻击载体,如果你支持整个世界,你会得到一些相当复杂的名称,特别是日语名称,很难处理。。。然后。。你也会遇到一些人,他们喜欢用大写字母写名字,并在末尾加上字符串,比如MONKEY\u BIG\u MAGIC\u APPLE\u NUTS;-事实上,我以前就有过这样一个。当从外部用户上传时,除非需要保留原始文件名,否则最好将其删除。主要原因是,除非你大量清除危险建筑的名称,如../,否则它会开启一个可能的攻击载体,如果你支持整个世界,你会得到一些相当复杂的名称,特别是日语名称,很难处理。。。然后。。你也会遇到一些人,他们喜欢用大写字母写名字,并在末尾加上字符串,比如MONKEY\u BIG\u MAGIC\u APPLE\u NUTS;-事实上我以前也有过。