我有一个函数可以通过 jQuery 检查文件是否存在,该函数调用 PHP 脚本,在单击索引页面上的按钮更改某些图像时,我将使用该脚本。
jQuery函数:
function fileExists(path){
$.getJSON("/ajax/fileExists.php",{ path: path },
function (data){
return data.path;
});
}
文件存在.php:
$path=$_SERVER['DOCUMENT_ROOT'].'/packs'.$_GET['path'];
if(file_exists($path)){
echo json_encode(TRUE);
}else{
echo json_encode(FALSE);
}
我担心人们使用此脚本列出我可能不希望他们知道的服务器或文件的内容,因此我使用 DOCUMENT_ROOT 和 /packs 来尝试限制对该目录的调用,但我认为人们可以简单地在提供的路径中使用 ../ 来检查替代方案。
确保安全的最佳方法是什么,最好将其限制在 /packs 中,还有其他我应该担心的问题吗?
编辑:javascript/jQuery 中的示例调用:
if( fileExists('/index.php') ){
alert('Exists');
}else{
alert('Doesn\'t exist');
}