3

PHP でファイルにアクセスする場合、「..」を使用してディレクトリからエスケープすることができ、セキュリティ リスクにつながる可能性があります。ファイルが指定されたディレクトリにあることを検証する方法はありますか? 組み込み関数はないようです。

4

2 に答える 2

4

これは、ファイルが予想される場所に存在するかどうかを確認するための安全な方法ではありません。次の手順を実行する必要があります。

$base     = '/expected/path/';
$filename = realpath($filename);
if ($filename === false || strncmp($filename, $base, strlen($base)) !== 0) {
    echo 'Missing file or not in the expected location';
}
else {
    echo 'The file exists and is in the expected location';
}
于 2012-08-05T13:20:57.227 に答える
-3

php.netには非常に良い例があります

http://php.net/manual/en/function.file-exists.php

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}
?>
于 2012-08-05T13:18:10.007 に答える