반응형
1. 자원삽입이란?
외부 입력값을 검증하지 않고 시스템 자원에 대한 식별자로 사용하는 경우, 입력값 조작을 통해 시스템이 보호하는 자원에 임의로 접근하거나 수정할 수 있는 보안적 이슈
2. 안전한 코딩기법
외부의 입력 자원을 식별자로 사용할 경우, 적절한 필터링 및 검증을 거치거나, 사전에 정의한 리스트에서 선택하도록 만든다.
3. 예시
사용자가 입력 소켓 번호로 -2920값을 입력할 경우 80이 되어 포트 충돌이 일어나는 상황
...
String service = props.getProperty("Service No");
int port = Integer.parseInt(service);
if(port != 0)
serverSocket = new ServerSocket(port + 3000);
else
serverSocket = new ServerSocket(def + 3000);
다음과 같이 미리 리스트를 정해주고 사용자는 입력값을 번호로 하여 내부적으로 할당하도록 처리한다.
..
if(in != null && in.available() > 0){
props.load(in);
service = props.getProperty("Service No");
}
if("".equals(service)) service = "8080"
int port = Integer.parseInt(service);
switch(port)
{
case 1:
port = 3001; break;
case 2:
port = 3002; break;
default:
port = 3000;
}
serverSocket = new ServerSocket(port);
반응형
'프로그래밍 > 시큐어코딩' 카테고리의 다른 글
[시큐어 코딩] #5 위험한 형식 파일 업로드 (0) | 2020.07.02 |
---|---|
[JAVA] Enum이란? (0) | 2020.07.02 |
[시큐어 코딩] #4 운영체제 명령어 삽입 (0) | 2020.07.02 |
[시큐어 코딩] #3 크로스 사이트 스크립트 / XSS (0) | 2020.07.01 |
[시큐어 코딩] #1 SQL 삽입 / preparedStatement란 (0) | 2020.07.01 |