다음 코드에서 시큐어코딩을 통해 보안약점을 제거하였다. 코드에 대한 설명으로 옳은 것은?
public static void main(String[] args) {
List<String> allowedCommands = new ArrayList<String>();
allowedCommands.add("notepad");
allowedCommands.add("calc");
String cmd = args[0];
if(allowedCommands.contains(cmd)) {
System.err.println("허용되지 않은 명령어입니다.");
return;
}
Process ps = null;
try {
ps = Runtime.getRuntime().exec(cmd);
}catch(Exception e) {
// ... 생략...
}
}- 1허용된 프로그램이 아닌 경우 에러 메시지를 출력한다.
- 2실행할 수 있는 프로그램을 제한하였다.
- 3보안약점이 제거되지 않아 추가 수정이 필요하다.
- 4해당 어플리케이션에서 노트패드를 실행할 수 있다.
꿈라CBT