インデックスページのボタンをクリックして特定の画像を変更するときに使用するPHPスクリプトを呼び出すjQueryを介してファイルが存在するかどうかを確認する関数があります。
jQuery関数:
function fileExists(path){
$.getJSON("/ajax/fileExists.php",{ path: path },
function (data){
return data.path;
});
}
fileExists.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');
}