IP주소는 하드코딩을 피해라.
책 '자바 코딩, 이럴 땐 이렇게'에서 이번에도 꼭 알아두어야 할 것 같은 부분을 보고 남기려고 한다. 서버 프로그램을 작성할 때 서버의 IP를 소스코드에 하드코딩하는 습관이 바람직하지 않다고 한다.
첫 번째 이유는 관리적인 측면과 유지보수의 측면에서 볼 수 있다. 말 그대로 서버의 IP가 바뀌었거나, 소스 수정을 할 때 하나하나 찾아가며 바꿔야 하기 때문이다.
두 번째 이유는 보안적인 측면인데, 자바 소스는 디컴파일(decompile)이 가능하기 때문이다. 즉 JVM이 인식하는 코드 .class코드가 유출된다면 IP정보가 쉽게 유출된다는 점이다.
해결 방안
package Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Example {
private static final String DEFAULT_PROPERTIES_PATH = "d://test.properties";
private static String serverIP;
public static void main(String[] args) throws Exception {
setServerIP(Example.getKey("serverIp"));
}
public static String getKey(String key) throws Exception {
String value = null;
InputStream is = new FileInputStream(DEFAULT_PROPERTIES_PATH);
Properties properties = null;
try {
properties = new Properties();
properties.load(is);
value = properties.getProperty(key);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
}
}
return value;
}
public static String getServerIP() {
return serverIP;
}
public static void setServerIP(String serverIP) {
Example.serverIP = serverIP;
}
}
'대학 생활 > JAVA' 카테고리의 다른 글
| [JAVA] method array 만들기 (0) | 2015.01.14 |
|---|---|
| [JAVA] 올바른 list.toArray() 사용법 (1) | 2015.01.07 |
| [JAVA] 가변인자(varargs : Variable Argument List) 사용법, 사이즈 (0) | 2014.12.24 |
| [JAVA] PreparedStatement SQL 출력,확인하기 (2) | 2014.12.21 |