
파일 다운로드 취약점이 발생하는 가장 큰 이유는 파일 다운로드가 허용되는 디렉터리를 벗어나 다른 곳으로 접근하기 때문이다. 이를 막기 위해서 경로의 변경을 가능하게 해주는 ../ 같은 경로 변경 문자열을 필터링해주거나 사용자가 접근을 요청하는 파일이 허용하는 경로 혹은 디렉터리가 맞는지 검사해주는 방법이 있다. 우선 사용자가 접근을 요청하는 파일이 허용하는 경로인지 검사해주는 방법이다.$filename = urldecode($_GET['file']);$filepath = $_SERVER['DOCUMENT_ROOT'] . "/upload/" . $filename;download.php의 일부분을 들고 왔다. file 파라미터로 받은 파일명을 urlencode하여 download.php로 보낸 뒤 decod..