Path Manipulation - Fortify
2017. 8. 22. 16:49ㆍ[개발] 지식/Web 개발
File downloadFile = new File(path);
path가 "C:/test/test/test.png" 같은 패턴으로 들어오고 있었다.
client가 url의 파라미터로 넣어주고 있었기 때문에 서버 내부의 디렉토리에 접근할 수 있는 가능성이 있어,
Path Manipulation 에 걸렸다..
아래와 같은 방법으로 path를 validation한다.
public static String cleanString(String aString) {
if (aString == null){
return null;
}
String cleanString = "";
for (int i = 0; i < aString.length(); ++i) {
cleanString += cleanChar(aString.charAt(i));
}
return cleanString;
}
private static char cleanChar(char aChar) {
// 0 - 9
for (int i = 48; i < 58; ++i) {
if (aChar == i){
return (char) i;
}
}
// 'A' - 'Z'
for (int i = 65; i < 91; ++i) {
if (aChar == i){
return (char) i;
}
}
// 'a' - 'z'
for (int i = 97; i < 123; ++i) {
if (aChar == i){
return (char) i;
}
}
// other valid characters
return getSpecialLetter(aChar);
}
public static char getSpecialLetter(char aChar){
switch (aChar) {
case '/':
return '/';
case '.':
return '.';
case '-':
return '-';
case '_':
return '_';
case ' ':
return ' ';
case ':':
return ':';
case '&':
return '&';
default:
return '%';
}
}
'[개발] 지식 > Web 개발' 카테고리의 다른 글
[JSTL] 시작하기 (0) | 2017.11.08 |
---|---|
Error Page 를 TilesView로 레이아웃 적용시키기 (0) | 2016.06.15 |
<