私はPHPソリューションを読んでいて、私を混乱させるこれらのコード行に出くわしました。コードの7行で PHPとのダウンロードリンクを作成
// define error page
$error = 'http://localhost/phpsols/error.php';
// define the path to the download folder
$filepath = 'C:/xampp/htdocs/phpsols/images/';
$getfile = NULL;
// block any attempt to explore the filesystem
if (isset($_GET['file']) && basename($_GET['file']) == $_GET['file']) {
$getfile = $_GET['file'];
} else {
header("Location: $error");
exit;
}
、なぜ
$_GET['file']
と等しくない
basename($_GET['file'])
をでしょうか?
こんにちは、お返事ありがとう!もう1つのフォローアップの質問:コードの2行目では、どのフォルダを調べるか、既に理論的には安全ではないでしょうか? 'download.php?file = .../index.php'を試したところ、ファイルには – Gnahzllib
が表示されませんでした。' C:/ xampp/htdocs/phpsols/images/$ _GET ['file'] = '../../../../ windows/system32/file'で 'C:/' +ドットの後ろにあったパスを解決します。 – drew010
'$ _GET ['file'] = '../../../../ windows/system32/file'は' C:/ windows/system32/file'になりますか? – Gnahzllib