에디터 이미지 업로드 후 복호화 시 에러가 납니다.
- 작성자 :
- 허*혜
- 작성일 :
- 2018-02-21 12:44:50
- 조회수 :
- 2,745
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
에디터 이미지 업로드는 확실하게 되는데
업로드 후 복호화 시 에러가 납니다.
첨부 이미지 보시면 파라미터는 넘어갔는데
1.복호화 시 파일명이 깨지는 현상이 있을때가 종종 있습니다.
2.subPath가 복호화를 하면 아예 값이 없습니다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
1의 경우는 모르겠으나 2의 경우 특수문자(+)가 공백으로 인식되서 그런거 같습니다...
decrypt = decrypt.replaceAll(" ", "+"); 추가 했더니 되기는 하는데 깨지는 현상은 모르겠네요;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* 암호화
*
* @param encrypt
*/
private String encrypt(String encrypt){
try {
return new String(new Base64().encode((byte[])cryptoService.encrypt(encrypt.getBytes("UTF-8"), "egovframe")));
} catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
}
return encrypt;
}
/**
* 복화화
*
* @param encrypt
*/
private String decrypt(String decrypt){
decrypt = decrypt.replaceAll(" ", "+");
try {
return new String((byte[])cryptoService.decrypt(new Base64().decode(decrypt.getBytes("UTF-8")), "egovframe"), "UTF-8");
} catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
}
return decrypt;
}
업로드 후 복호화 시 에러가 납니다.
첨부 이미지 보시면 파라미터는 넘어갔는데
1.복호화 시 파일명이 깨지는 현상이 있을때가 종종 있습니다.
2.subPath가 복호화를 하면 아예 값이 없습니다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
1의 경우는 모르겠으나 2의 경우 특수문자(+)가 공백으로 인식되서 그런거 같습니다...
decrypt = decrypt.replaceAll(" ", "+"); 추가 했더니 되기는 하는데 깨지는 현상은 모르겠네요;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* 암호화
*
* @param encrypt
*/
private String encrypt(String encrypt){
try {
return new String(new Base64().encode((byte[])cryptoService.encrypt(encrypt.getBytes("UTF-8"), "egovframe")));
} catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
}
return encrypt;
}
/**
* 복화화
*
* @param encrypt
*/
private String decrypt(String decrypt){
decrypt = decrypt.replaceAll(" ", "+");
try {
return new String((byte[])cryptoService.decrypt(new Base64().decode(decrypt.getBytes("UTF-8")), "egovframe"), "UTF-8");
} catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
}
return decrypt;
}
A
안녕하십니까, 허승혜님
표준프레임워크센터입니다.
기존 제공된 이미지 업로드 시 암복호화 부분에 decryption 시 경로가 맞지 않아 이미지를 불러오지 못했었습니다.
한글 파일 업로드 시 GET 메소드에 의해 전달된 데이터 디코딩 문제가 발생했습니다.
GET 메소드에 의해 얻어진 데이터들은 환경변수 QUERY_STRING에 저장되어 있는데, 이러한 데이터들은 name=value의 쌍으로 얻어집니다.
디코딩은 인코딩된 문자들을 인코딩과는 반대로 "+"는 공백으로 바꾸어 줘야 합니다.
BASE64로 인코딩한 값을 GET 방식으로 전송하면 "+" 플러스 문자가 공백으로 변경되어 값을 받는 쪽에서는 디코딩 시 오류가 발생합니다.
이로 인해 암호화된 경로에 '+'가 들어가 있을 경우 " "와 같은 공백으로 디코딩을 해서 이미지 불러오기 문제가 있었습니다.
12/22 일자로 EgovWebEditorImageController.java에 "+" 치환 관련 메소드를 추가하여 포털 공통컴포넌트 보안강화 패치에 다운로드에 적용해서 배포 중이니, 참고해주시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
기존 제공된 이미지 업로드 시 암복호화 부분에 decryption 시 경로가 맞지 않아 이미지를 불러오지 못했었습니다.
한글 파일 업로드 시 GET 메소드에 의해 전달된 데이터 디코딩 문제가 발생했습니다.
GET 메소드에 의해 얻어진 데이터들은 환경변수 QUERY_STRING에 저장되어 있는데, 이러한 데이터들은 name=value의 쌍으로 얻어집니다.
디코딩은 인코딩된 문자들을 인코딩과는 반대로 "+"는 공백으로 바꾸어 줘야 합니다.
BASE64로 인코딩한 값을 GET 방식으로 전송하면 "+" 플러스 문자가 공백으로 변경되어 값을 받는 쪽에서는 디코딩 시 오류가 발생합니다.
이로 인해 암호화된 경로에 '+'가 들어가 있을 경우 " "와 같은 공백으로 디코딩을 해서 이미지 불러오기 문제가 있었습니다.
12/22 일자로 EgovWebEditorImageController.java에 "+" 치환 관련 메소드를 추가하여 포털 공통컴포넌트 보안강화 패치에 다운로드에 적용해서 배포 중이니, 참고해주시기 바랍니다.
감사합니다.