[실습1-2] 직접 제작하면서 배우는 JSP 기반의 파일 다운로드 질문
634
投稿した質問数 4
안녕하세요 크리핵티브님 파일 다운로드 jsp 기반의 파일 다운로드 질문이 있습니다.
해당 영상을 보고 따라 하여 jsp 다운로드 소스코드를 작성하였는데 영상에서는 파일이 다운로드가 정상적으로 되었지만
실제로 따라 하였을때에는 파일 다운로드가 되지 않고
사이트에 연결할 수 없음
http://127.0.0.1:8080/download1.jsp?org_filename=11test.jpg&real_filename=1234.jpg의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.
이렇게 오류가 뜨는데 이럴때는 해결방법이 없으려나요 ?
해당 소스코드는 이러합니다.
index.jsp 소스코드
<%@ page contentType="text/html; charset=UTF-8" %>
<li>첨부파일1 : <a href="download1.jsp?org_filename=11test.jpg&real_filename=1234.jpg">[다운로드]</a></li>
<li>첨부파일2 : <a href="download2.jsp?path=image&org_filename=11test.jpg&real_filename=1234.jpg">[다운로드]</a></li>
<li>첨부파일3 : <a href="download3.jsp?path=C:\APM_Setup\Server\apache-tomcat-8.5.73\webapps\ROOT\upload\image&org_filename=11test.jpg&real_filename=1234.jpg">[다운로드]</a></li>
download1.jsp 소스코드
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*,java.io.* " %>
<%
FileInputStream fis = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
String path = "C:\\APM_Setup\\Server\\apache-tomcat-8.5.73\\webapps\\ROOT\\upload\\image\\";
String org_filename = request.getParameter("org_filename");
String real_filename = request.getParameter("real_filename");
if(org_filename == null || real_filename == null) {out.println("<script>alert('파일명이 입력되지 않았습니다.');history.back(-1);</script>");
return;
}
try {
File fd = new File(path + real_filename);
if(fd.exists()) {out.println("<script>alert('파일이 존재하지 않습니다.');history.back(-1);</script>");
return;
}
response.setHeader("Content-Type","application/octect-stream");
response.setHeader("Content-Disposition","attachment; filename=" + org_filename);
fis = new FileInputStream(fd);
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024];
int i = 0;
while((i=(bis.read(buffer))) != -1) {bos.write(buffer, 0, i);
}
bos.flush();
} finally {
if(fis != null) fis.close();
if(bis != null) bis.close();
if(bos != null) bos.close();
}
%>
강의를 들으면서 똑같이 따라하였고 오타 부분도 확인하였으나 어느 부분에서 오류가 났는지 잘 이해가 안가 질문 드립니다. 제가 생각하기론 경로(path) 부분인거 같은데 어느 경로가 문제인지 잘 모르겠습니다..
소스코드 상 오류는 없고 해당 실습을 진행하게 되면
모든 실습 간에서 파일을 다운로드 할 수 없고 사이트에 연결할 수 없다고 하네요 경로를 역슬래쉬 혹은 슬래쉬 둘다 교체해서 수정하여도 결과는 똑같습니다.
해당 톰켓을 재설치하여 적용해도 똑같이 나옵니다..
재설치만 10번 넘게 해봤는데도 결과는 똑같아서 글 남깁니다..
감사합니다.
回答 1
0
안녕하세요.
우선 String path 변수의 경로가 제대로 되었는지 확인해보시구요.
if(fd.exists())
코드 부분은
if(!fd.exists())
로 수정해주세요.
질문이 있습니다
1
425
1
15:00 에서 '\'는 왜 URL 인코딩해서 보내야 되는 건가요?
1
433
1
java Spring 프레임 워크 환경에서의 파일 다운로드 취약점
1
569
1
질문입니닷.
1
264
1
안녕하세요
1
394
2
파일 다운로드 취약점 실무사례 분석 관련
1
526
1
실무 수업 자료 오류
1
311
2
Switchysharp 프록시 사용해서 하고 있습니다.
1
382
1
test.jsp 테스트 하실 때
1
302
1
index 파일을 받아서 어떻게 공격할수 있는건지 궁금합니다
1
368
1
burp suite 설치는 언제 한건가요??
1
319
1
웹 디렉토리에 관련된 질문 사항입니다.
1
309
2
burpsuite 원하는 응답 및 요청만 설정 관련 질문
1
232
1
[실습 5-1] "\\" 는 처리가 안되어있어서 질문드려요
2
206
1
간접적방식 문의드립니다.
1
230
1
TOMCAT문제 도와주세요ㅠ
1
352
5
실행환경설정 도와주세요
1
276
1
안녕하세요
1
319
2
문의사항
1
317
3
tomcat 8.5 설치이후에
1
582
2
문의사항
1
233
1
경로 조작에서 질문이요!
1
204
1
brup로 인터셉트할때
1
372
2
섹션2. 취약점 분석 방법론(4) 강의 내용중에 질문이 있습니다.
1
374
2

