在共享服务器上缓存 - 本地缓存目录的安全问题?

时间:2011-03-13 21:24:18

标签: php

我正在使用此脚本:http://www.cforcoding.com/2009/05/supercharging-javascript-part-4-caching.html

基本上,如果指令将在共享服务器上使用,则说明建议不要使用缓存。

现在我正在使用另一个脚本,该脚本从字体文件和我提供的文本动态生成gif图像,并将其存储在本地缓存驱动器中。以下是该代码的一部分:

$hash = md5(basename($font_file) . $font_size . $font_color .
        $background_color . $transparent_background . $text) ;
$cache_filename = $cache_folder . '/' . $hash . $extension ;
if($cache_images && ($file = @fopen($cache_filename,'rb'))) {
header('Content-type: ' . $mime_type) ;
while(!feof($file))
    print(($buffer = fread($file,$send_buffer_size))) ;
fclose($file) ;
exit ;
}

所以我的两个问题是:

1)对于我粘贴的代码,是否存在安全问题?

2)我可以使用这段代码用于缓存我在开头提供的网站网址(http://www.cforcoding.com/2009/05/supercharging-javascript-part-4-caching.html)基本上用这个替换他们的缓存方法以避免上述安全问题。或者你推荐其他方法吗?

1 个答案:

答案 0 :(得分:1)

cforcoding.com指南的作者担心共享主机上的安全性,因为他假设CACHE_DIR将成为共享目录,例如/ tmp。但是没有理由必须将/ tmp用于任意缓存目录。您只需使用用户文件夹中的子目录即可。所以在您的情况下,只要$ cache_folder不是/ tmp或其他共享目录就可以了(例如/ home / user / mycache)。

相关问题